Оператор SQL SET - PullRequest
       30

Оператор SQL SET

4 голосов
/ 27 июня 2011

В настоящее время я улучшаю свои знания SQL. В настоящее время я пытаюсь объявить переменную, получив значение из оператора select. Первый вопрос: возможно ли это?

Второй вопрос: у меня есть SQL, пытающийся сделать выше. Мое намерение состоит в том, чтобы установить @version_group на то, что удерживает version_replace, что всегда является результатом в виде одной строки и одного столбца.

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

Как я могу исправить это для правильного синтаксиса? (при условии, что это возможно)

Ответы [ 5 ]

5 голосов
/ 27 июня 2011

Как я могу исправить это, чтобы действительный Синтекс? (при условии, что это возможно)

Синтаксис, который вы хотите, выглядит следующим образом: ему нужна одна часть информации, которой у вас нет в исходной работе (предложение FROM):

DECLARE @version_group int

select @version_group = version_replace from (you're missing this from your query) where id=@sid
2 голосов
/ 27 июня 2011

Это возможно.Просто сделайте (SQL 2008):

declare @version_group as int=
(SELECT version_replace 
FROM users
WHERE id=@sid);
1 голос
/ 27 июня 2011
DECLARE @version_group int

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

Не забудьте указать свой источник данных (т. Е. Таблицу, представление, заменив MyVersionTable выше).

0 голосов
/ 27 июня 2011
DECLARE @version_group int

-- THEN

SET @version_group = 1

-- OR!

SELECT @version_group FROM version_replace WHERE id=@sid
0 голосов
/ 27 июня 2011
  1. Конечно
  2. SELECT @version_group = version_replace FROM YourTable WHERE id=@sid
...