我正在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
表参数。
让我知道语法,我哪里错了?
答案 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);