我将表的变量名称设置为小写:
Set TGT_TABLE = 'tab_name';
但是,当我尝试调用它时:
select * from table($TGT_TABLE);
我收到一个错误:
SQL compilation error: Object 'TAB_NAME' does not exist or not authorized.
为什么它调用我的表名的大写版本另外我在“显示变量”中验证了我的变量确实是小写的
我将表的变量名称设置为小写:
Set TGT_TABLE = 'tab_name';
但是,当我尝试调用它时:
select * from table($TGT_TABLE);
我收到一个错误:
SQL compilation error: Object 'TAB_NAME' does not exist or not authorized.
为什么它调用我的表名的大写版本另外我在“显示变量”中验证了我的变量确实是小写的
你可以这样写你的代码:
declare @TGT_TABLE nvarchar(50),@query nvarchar(50)
Set @TGT_TABLE = 'name of your table';
SET @query = 'SELECT * FROM ' + @TGT_TABLE;
EXEC(@query);
它会起作用的。
为了使用小写标识符,这些标识符必须用双引号括起来。为了将其分配给变量,这必须另外用单引号引起来。
@jarlh 的答案是正确的,请注意双引号周围的单引号。
Set TGT_TABLE = '"tab_name"';
select * from table($TGT_TABLE);
如有疑问,请复制/粘贴