YsoL8
YsoL8

Reputation: 2214

SQL SET statement

I am currently improving my knowledge of SQL. Currently I am trying to declare a variable by getting a value from a select statement. First Question: Is this possible?

Second Question: I have this SQL attempting to do the above. My intension is to set @version_group to whatever version_replace holds, which is always a single row, single column result.

    DECLARE @version_group int
    SET @version_group = SELECT version_replace FROM users WHERE id=@sid

How can I correct this to valid syntax? (assuming it's possible)

Upvotes: 4

Views: 12490

Answers (5)

sara
sara

Reputation: 3934

It's possible. Just do (SQL 2008):

declare @version_group as int=
(SELECT version_replace 
FROM users
WHERE id=@sid);

Upvotes: 2

abatishchev
abatishchev

Reputation: 100248

DECLARE @version_group int

-- THEN

SET @version_group = 1

-- OR!

SELECT @version_group FROM version_replace WHERE id=@sid

Upvotes: 0

Kirill Polishchuk
Kirill Polishchuk

Reputation: 56162

  1. Sure
  2. SELECT @version_group = version_replace FROM YourTable WHERE id=@sid

Upvotes: 0

bitxwise
bitxwise

Reputation: 3594

DECLARE @version_group int

SELECT @version_group = version_replace
FROM   MyVersionTable
WHERE  id=@sid

Don't forget to include your data source (i.e. table, view, replacing MyVersionTable above).

Upvotes: 1

heisenberg
heisenberg

Reputation: 9759

How can I correct this to valid syntex? (assuming it's possible)

The syntax you want is as follows, it needs one piece of info that you don't have in your original effort though (the FROM clause) :

DECLARE @version_group int

select @version_group = version_replace from (you're missing this from your query) where id=@sid

Upvotes: 6

Related Questions