Set A Variable From A Table
sql-server
Solution
SELECT @UserIdToUpdate = NULL
SELECT TOP 1 @UserIdToUpdate = userId FROM #NewUsers
The first statement is needed because if the second finds zero rows, then the variable will not get assigned at all and will keep its prior value.
Alternatively,
SELECT @UserIdToUpdate = (SELECT TOP 1 userId FROM #NewUsers)
this will work even if zero rows are found.
Problem
If I want to set a variable to a field in a table I normally use something like ``` SELECT @UserIdToUpdate = userId FROM #NewUsers ``` In this case there will be multiple results and I just want the first one so I tried this but it fails and says invalid syntax top ``` SELECT @UserIdToUpdate = TOP 1 UserId FROM #NewUsers ``` If this is this case can I just usethe first example without the top? I assume it will just take the first record? I know it seems like on odd thing to do but the command is in a loop so it will select a record, do something with it, delete it then select the next one.