我有以下2個應該返回相同信息的查詢。動態查詢:如何在SQL-Server中定義表名或其他字符串
一個正常的查詢和動態查詢,由於@TABLENAME變量的命名我沒有檢索到任何結果。
DECLARE @TABLENAME as NVARCHAR (MAX)
SET @TABLENAME = 'MyTable'
查詢返回結果
select * from jfa.[dbo].[MyTable]
INNER JOIN INFORMATION_SCHEMA.COLUMNS on INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = @TableName and INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION = 2
動態查詢不返回任何結果
DECLARE @sql as nvarchar(max)
set @sql = 'select * from jfa.[dbo].[MyTable]
INNER JOIN INFORMATION_SCHEMA.COLUMNS on INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = ''@TableName'' and INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION = 2'
exec sp_executeSQL @sql,
N'@TABLENAME nvarchar',
@TABLENAME
我想這個問題是在下面的行:
on INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = ''@TableName''
但我嘗試了幾件事情沒有成功。
提前許多感謝,
吉
的可能的複製[?如何寫在存儲過程中動態表名選擇查詢](https://stackoverflow.com/questions/40233532/how-to-write -select-query-with-dynamic-table-name-in-stored-procedure) –