Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да използвам таблична променлива в динамичен sql израз?

На SQL Server 2008+ е възможно да използвате параметри с стойност на таблицата за предаване на променлива на таблица към динамичен SQL израз, стига да не е необходимо да актуализирате стойностите в самата таблица.

Така че от кода, който сте публикували, можете да използвате този подход за @TSku но не и за @RelPro

Примерен синтаксис по-долу.

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 колоната е включена само за да демонстрира, че променливата на таблицата, посочена в дъщерния обхват, определено е същата като външния обхват, а не копие.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявка за възстановяване на индекс на SQL Server

  2. Сортиране на куршуми в базата данни

  3. Как работи функцията TRANSLATE() в SQL Server (T-SQL)

  4. грешка, низови или двоични данни ще бъдат съкратени при опит за вмъкване

  5. Как да извлека данни от база данни на SQL Server в C#?