Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan hasil dari SQL dinamis dalam prosedur tersimpan

Apakah Anda mencoba sesuatu seperti:

DECLARE @FiscalYear INT, @DataSource NVARCHAR(25), @SQL NVARCHAR(250);
SET @DataSource = N'CustomerCosts20120328';
SET @SQL = N'SELECT DISTINCT @FiscalYear = FiscalYear FROM ' + @DataSource;
EXEC sp_executesql @SQL, N'@FiscalYear INT OUTPUT', @FiscalYear OUTPUT;

PRINT @FiscalYear;

Anda ingin memastikan bahwa Anda mengawali string nvarchar dengan N, mis. SELECT @SQL = N'SELECT ... .

Juga, Anda tahu bahwa jika kueri mengembalikan beberapa baris, nilai yang ditetapkan ke @FiscalYear benar-benar sewenang-wenang, kan? Meskipun Anda mungkin mengharapkan satu nilai dari tabel itu, tidak ada salahnya menggunakan MAX() atau TOP 1 ... ORDER BY untuk memastikan bahwa hanya satu nilai yang dapat diprediksi yang pernah ditetapkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menangani karakter unicode yang tidak ditampilkan dengan benar dalam kueri SQL

  2. Cara menambahkan Batasan kunci Asing ke tabel yang ada di SQL Server - Tutorial SQL Server / TSQL Bagian 68

  3. Buat Kolom "Terakhir Dimodifikasi" di SQL Server

  4. Menghubungkan aplikasi inti ASP.NET Anda ke instance lokal SQLServer

  5. Tampilan di SQL Server