I am trying to update a column inside of a table variable based on a condition, the condition being that the ID of the table variable does not exist in a different table:
DECLARE @BugRep TABLE(BugCode VARCHAR(50),DevFirstName VARCHAR(50), DevLastName VARCHAR(50), BugDate VARCHAR(20), IsValid VARCHAR(1))
UPDATE @BugRep
SET IsValid = 'N' WHERE NOT EXISTS(SELECT * FROM BUG b WHERE @BugRep.BUGCODE = b.CODE)
When i try to compile the procedure that has these statements, I get a "Must declare the scalar variable "@BugRep" message.
How do i go about using the table variable inside of the NOT EXISTS clause?
I am using SQL Server 2008
Here's a version of the previous two using aliases to get around your issue:
This also avoids the inefficiencies related to "is not null" and "not exists".
This will work:
You'll also need to change "b.CODE" to "b.BUGCODE" by the way ;)
This is actually very picky. Check out the in-line comments below using womp's suggestion and also trying a LEFT OUTER JOIN.