我可以使用变量作为现有表的名称吗?第一个SELECT工作正常,但第二个生成错误,表明我正在尝试创建表变量。我想要的只是使用一个变量作为现有表的名称。
declare @name varchar(100)
CREATE TABLE CURVES(
ARC VARCHAR(10),
RADIUS VARCHAR (10),
CENPTid BIGINT,
StartPTid BIGINT,
EndPTid BIGINT)
INSERT INTO CURVES
VALUES ('10.23', '50.22', 5, 6, 8)
SELECT * FROM CURVES
set @name='CURVES'
SELECT * FROM @name
答案 0 :(得分:1)
你不能做你想做的事情。
但您可以声明表变量,然后填充该表变量并从该表变量中进行选择。像这样......
-- Actual Table
CREATE TABLE CURVES
(
ARC VARCHAR(10),
RADIUS VARCHAR (10),
CENPTid BIGINT,
StartPTid BIGINT,
EndPTid BIGINT
)
GO
-- Populate the table
INSERT INTO CURVES
VALUES ('10.23', '50.22', 5, 6, 8)
GO
-- Declare the table Variable
declare @name TABLE
(
ARC VARCHAR(10),
RADIUS VARCHAR (10),
CENPTid BIGINT,
StartPTid BIGINT,
EndPTid BIGINT
)
INSERT INTO @name --<-- Populate the Table Variable
SELECT * FROM CURVES
SELECT * FROM @name --<-- Now select from table Variable
答案 1 :(得分:1)
这是动态SQL方法,所以
set @name='CURVES'
exec ('SELECT * FROM '+ @name)