Как сохранить несколько значений из SELECT в SQL Server? - PullRequest
3 голосов
/ 04 января 2012

Есть ли способ сохранить результаты запроса SELECT в сохраненном процессе с использованием SQL Server?

В приведенном ниже примере я хотел бы сохранить как «один», так и «два» из запроса выбора.

Пример:

DECLARE @Values ???
SET @Values = (SELECT one, two FROM dummyTable)

Ответы [ 3 ]

5 голосов
/ 04 января 2012

Для этого вы можете использовать табличную переменную:

DECLARE @Table TABLE (one varchar(100), two varchar(100)

INSERT INTO @TABLE
SELECT one, two from dummytable

Как и другие переменные, она не будет доступна за пределами области действия процедуры.большое количество строк, так как оптимизатор всегда предполагает одну строку для планов выполнения.

4 голосов
/ 04 января 2012
SELECT @Value1 = One, @Value2 = two FROM dummyTable;

У вас нет никаких массивов в SQL Server.

2 голосов
/ 04 января 2012

Если ваш запрос возвращает только одну строку:

DECLARE @v1 int -- or whatever
DECLARE @v2 int
SELECT @v1 = one, @v2 = two
  FROM dummyTable
  WHERE id = 1 

Если ваш запрос возвращает несколько строк, вы можете использовать SELECT INTO, чтобы не объявлять переменную таблицы:

SELECT one, two
  FROM dummyTable
  INTO #temp
SELECT * FROM #temp
DROP TABLE #temp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...