簡體   English   中英

使用帶有動態字段的表變量作為動態 SQL 的輸入

[英]Using table variable with dynamic fields as input for dynamic SQL

我想在動態查詢中使用一個表。 但是表格的列不是固定的,它們可能會發生變化。

declare @t table(ID int, Fname varchar(50), Lname varchar(50)); -- Columns may change
insert into @t(ID, Fname, Lname)
values
(1, 'Jack', 'Martinez'),
(2, 'Alex', 'Desoza');

我試過下面的代碼:

declare @tablename nvarchar(max) = '@t'
declare @query nvarchar(max) = 'select * from '+ @tablename 
exec sp_executesql @query 

但我唯一得到的是:

必須聲明標量變量“@t”。

您需要將表變量的定義帶入代碼的“動態”部分:

declare @query nvarchar(max) = '
declare @t table(ID int, Fname varchar(50), Lname varchar(50));
insert into @t(ID, Fname, Lname)
values
(1, ''Jack'', ''Martinez''),
(2, ''Alex'', ''Desoza'');
select * from @t' 
exec sp_executesql @query

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM