我正在尝试创建一个存储过程,从可以参数化的数据库名称中进行选择。但是,我这样做有很多麻烦。我正在尝试执行以下简单的操作:
DECLARE @tableName VARCHAR
SET @tableName = 'MY_TABLE_NAME'
SELECT
*
FROM
@tableName
这会产生错误:Incorrect syntax near '@tableName'.
有人可以告诉我如何从参数化表名中进行选择吗?
答案 0 :(得分:1)
在这种情况下执行动态SQL。
DECLARE @tableName VARCHAR
SET @tableName = 'MY_TABLE_NAME'
exec('
SELECT
*
FROM ' + @tableName )