SQL Server 2005中的动态查询

时间:2012-03-06 13:31:33

标签: sql-server-2005

我正在sqlserver 2005中编写动态查询。

DECLARE @SQL3 VarChar(2000)                             
SET @SQL3 =' INSERT into @TableClub4 SELECT  ID from Clubcard   '  
print (@SQL3);
Exec (@SQL3);

无论什么时候它都会给我一个错误

Msg 1087, Level 15, State 2, Line 1
Must declare the table variable "@TableClub4".

但是我已经定义了@TableClub4表参数。

让我知道语法,我哪里错了?

2 个答案:

答案 0 :(得分:1)

您不能在动态sql块中使用声明的表。你可以这样做:

CREATE TABLE #TableClub4
(
    ID INT
)
DECLARE @SQL3 VarChar(2000)                             
SET @SQL3 =' INSERT into #TableClub4 SELECT ID from Clubcard'
print  (@SQL3);
Exec (@SQL3);
DROP TABLE #TableClub4

答案 1 :(得分:1)

您的表变量在动态sql中是未知的,但您可以将其重写为:

DECLARE @SQL3 VarChar(2000)                             
SET @SQL3 ='SELECT  ID from Clubcard'  
print (@SQL3);

INSERT into @TableClub4
Exec (@SQL3);