SQL Выберите строку и сохраните ее в переменной SQL
Итак, я пишу этот Stored Proc, и я действительно сосать SQL.
Мой вопрос к вам, ребята:
Можно ли выбрать целую строку и сохранить ее в переменной?
Я знаю, что могу сделать что-то вроде:
declare @someInteger int
select @someInteger = (select someintfield from sometable where somecondition)
Но могу ли я выбрать всю строку из sometable
и сохранить ее в переменной?
Ответы
Ответ 1
Вы можете выбрать поля для нескольких переменных:
DECLARE @A int, @B int
SELECT
@A = Col1,
@B = Col2
FROM SomeTable
WHERE ...
Другой, потенциально лучший подход - использовать переменную таблицы:
DECLARE @T TABLE (
A int,
B int
)
INSERT INTO @T ( A, B )
SELECT
Col1,
Col2
FROM SomeTable
WHERE ...
Затем вы можете выбрать из своей таблицы переменную, как в обычной таблице.
Ответ 2
Вы можете создать переменную таблицы, соответствующую вашей схеме таблиц, и сохранить в ней одну строку:
declare @myrow table(field0 int,field1 varchar(255))
insert into @myrow
select field0,field1 from mytable where field0=1
Ответ 3
Пожалуйста, смотрите/через:
Оператор MSSQL Select с инкрементным целым столбцом... не из таблицы
SELECT ROW_NUMBER() OVER( ORDER BY Column1, Column2 ) AS 'rownumber',*
FROM YourTable