我有一个Error
表,用于存储发生错误的表的名称。
现在我想使用从“错误”表中选择的表名来查询表。
我尝试将表名存储在变量中,并在查询中的FROM子句中使用此变量。但这不起作用:
DECLARE @tableName VARCHAR(15)
select @tableName = TableName from SyncErrorRecords where Status = 'Unsynced'
select * from @tableName
任何人都可以帮我解决这个问题。 提前谢谢。
答案 0 :(得分:0)
您需要使用Dynamic SQL
或者
declare @sql nvarchar(max)
select @sql = 'select * from ' + quotename(@tableName)
exec (@sql)
或
exec sp_executesql @sql
答案 1 :(得分:0)
查询如下。
DECLARE @tableName VARCHAR(15),
@Qry VARCHAR(4000)
SELECT @tableName = TableName FROM SyncErrorRecords WHERE Status = 'Unsynced'
SET @Qry = 'SELECT * FROM ' + @tableName
EXEC SP_EXECUTESQL @Qry