2012-03-06 55 views
0

我在2005年的sqlserver動態查詢2005

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

編寫動態查詢每當excutes它給了我一個錯誤

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

但我已經定義了@TableClub4表參數。

讓我知道語法,哪裏出錯了?

回答

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

你的表變量不是動態SQL中已知的,但是你可以重寫它這樣:

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

INSERT into @TableClub4 
Exec (@SQL3);