必须声明标量变量“@unwantedRows”

时间:2010-07-28 11:26:44

标签: sql-server-2008

为什么此查询不起作用?

Delete  tblProduct
From    tblProduct
Inner Join @unwantedRows
On tblProduct.ProductId = @unwantedRows.ProductId;

@unwantedRows

的位置
DECLARE @unwantedRows TABLE 
( 
    ProductId INT, 
    ProductName VARCHAR(50),
    Description VARCHAR(50),
    Category VARCHAR(50),
    Repetitions int

);

2 个答案:

答案 0 :(得分:4)

您不能在连接中使用变量名称。

尝试:

Delete  tblProduct
From    tblProduct
Inner Join @unwantedRows AS u
On tblProduct.ProductId = u.ProductId;

答案 1 :(得分:1)

试试这个

Delete  tblProduct
From    tblProduct
WHERE tblProduct.ProductId IN (SELECT ProductId FROM @unwantedRows);