sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan bruger man tabelvariabel i en dynamisk sql-sætning?

På SQL Server 2008+ er det muligt at bruge Table Valued Parameters til at overføre en tabelvariabel til en dynamisk SQL-sætning, så længe du ikke behøver at opdatere værdierne i selve tabellen.

Så ud fra den kode, du postede, kunne du bruge denne tilgang til @TSku men ikke for @RelPro

Eksempel på syntaks nedenfor.

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 kolonne er inkluderet blot for at demonstrere, at tabelvariablen, der refereres til i det underordnede omfang, absolut er den samme som det ydre omfang i stedet for en kopi.



  1. cx oracle ImportError

  2. TODATETIMEOFFSET() Eksempler i SQL Server

  3. 4 tabelformede outputtilstande i SQLite

  4. Hvordan vælger man rækker, der har dagens tidsstempel?