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

Bagaimana cara menggunakan variabel tabel dalam pernyataan sql dinamis?

Pada SQL Server 2008+ dimungkinkan untuk menggunakan Parameter Bernilai Tabel untuk meneruskan variabel tabel ke pernyataan SQL dinamis selama Anda tidak perlu memperbarui nilai dalam tabel itu sendiri.

Jadi dari kode yang Anda posting, Anda dapat menggunakan pendekatan ini untuk @TSku tapi tidak untuk @RelPro

Contoh sintaks di bawah ini.

CREATE TYPE MyTable AS TABLE 
( 
Foo int,
Bar int
);
GO


DECLARE @T AS MyTable;

INSERT INTO @T VALUES (1,2), (2,3)

SELECT *,
        sys.fn_PhysLocFormatter(%%physloc%%) AS [physloc]
FROM @T

EXEC sp_executesql
  N'SELECT *,
        sys.fn_PhysLocFormatter(%%physloc%%) AS [physloc]
    FROM @T',
  N'@T MyTable READONLY',
  @[email protected] 

physloc kolom disertakan hanya untuk menunjukkan bahwa variabel tabel yang dirujuk dalam lingkup anak pasti sama dengan lingkup luar daripada salinan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana memulihkan database dari C#

  2. Pernyataan CASE dalam klausa WHERE di SQL Server 2008

  3. Cara Menginstal SQL Server di M1 Mac (ARM64)

  4. Pernyataan ALTER TABLE bertentangan dengan batasan FOREIGN KEY

  5. Cara Memilih JSON Bersarang di SQL Server dengan OPENJSON