Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak używać zmiennej tabeli w dynamicznej instrukcji sql?

W SQL Server 2008+ możliwe jest użycie parametrów wartości tabeli do przekazania zmiennej tabeli do dynamicznego polecenia SQL, o ile nie trzeba aktualizować wartości w samej tabeli.

Więc z kodu, który zamieściłeś, możesz użyć tego podejścia dla @TSku ale nie dla @RelPro

Przykładowa składnia poniżej.

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 kolumna jest dołączona tylko po to, aby zademonstrować, że zmienna tabeli, do której odwołuje się zakres podrzędny, jest zdecydowanie tą samą, co zakres zewnętrzny, a nie kopią.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak czytać i analizować plany wykonania SQL Server

  2. Znajdź wszystkie tabele zawierające kolumnę o określonej nazwie - MS SQL Server

  3. JSON_VALUE() Przykłady w SQL Server (T-SQL)

  4. 2 sposoby tworzenia bazy danych na serwerze połączonym przy użyciu T-SQL

  5. Jak utworzyć procedurę składowaną w SQL Server