2010-07-28 4 views
0

Pourquoi cette requête ne fonctionne-t-elle pas?Doit déclarer la variable scalaire "@unwantedRows"

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

@unwantedRows est

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

); 

Répondre

4

Vous ne pouvez pas utiliser le nom de la variable dans la jointure comme ça.

Essayez:

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

essayer cette

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