sql >> Databáze >  >> RDS >> Sqlserver

Jak používat proměnnou tabulky v dynamickém příkazu SQL?

Na SQL Server 2008+ je možné použít parametry tabulky hodnot k předání proměnné tabulky do dynamického příkazu SQL, pokud nepotřebujete aktualizovat hodnoty v samotné tabulce.

Takže z kódu, který jste zveřejnili, můžete tento přístup použít pro @TSku ale ne pro @RelPro

Příklad syntaxe níže.

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 sloupec je zahrnut jen proto, aby demonstroval, že proměnná tabulky odkazovaná v podřízeném rozsahu je rozhodně stejná jako vnější rozsah, nikoli kopie.



  1. Počítejte záznamy pro každý měsíc v roce

  2. Chyba Postgresu při aktualizaci dat sloupce

  3. dobrý postgresql klient pro Windows?

  4. Oznamujeme podporu MariaDB 10.2 – ClusterControl 1.5