Ответ 1
DECLARE @a int;
DECLARE @b int;
SELECT @a = StartNum, @b = EndNum
FROM Users
WHERE UserId = '1223'
Я хочу сделать это:
Declare @a int;
Declare @b int;
SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223')
PRINT @a
PRINT @b
Но это недопустимый синтаксис. Как установить несколько скалярных переменных в один оператор select? Я могу сделать:
Declare @a int;
Declare @b int;
SET @a = (SELECT StartNum FROM Users Where UserId = '1223')
SET @b = (SELECT EndNum FROM Users Where UserId = '1223')
PRINT @a
PRINT @b
Но это займет в два раза больше. Каков самый быстрый способ?
DECLARE @a int;
DECLARE @b int;
SELECT @a = StartNum, @b = EndNum
FROM Users
WHERE UserId = '1223'
Сделайте это так:
Declare @a int;
Declare @b int;
SELECT @a=StartNum,@b=EndNum FROM Users Where UserId = '1223'
PRINT @a
PRINT @b
Если вы делаете это в хранимой процедуре и не хотите получить результат выбора в выходном результирующем наборе, вам нужно будет использовать слово INTO.
Declare @a int;
Declare @b int;
SELECT StartNum, EndNum
FROM Users
Where UserId = '1223'
INTO @a, @b;
Его также можно использовать следующим образом:
SELECT StartNum, EndNum
INTO @a, @b
FROM Users
Where UserId = '1223';