Просто чтобы уточнить, я использую Sybase 12.5.3, но я уверен, что это справедливо и для SQL Server 2005. По сути, я пытаюсь написать запрос, который выглядит примерно так, я максимально упростил его, чтобы осветить проблему:
DECLARE @a int, @b int, @c int
SELECT
@a = huzzah.a
,@b = huzzah.b
,@c = huzzah.c
FROM (
SELECT
1 a
,2 b
,3 c
) huzzah
Этот запрос выдает мне следующую ошибку: "Ошибка: 141 Оператор SELECT, который присваивает значение переменной, нельзя объединять с операциями извлечения данных."
Единственный обходной путь, который у меня есть для этого, - это вставить данные производной таблицы во временную таблицу, а затем снова выбрать ее обратно. Что работает хорошо, но тот факт, что это не работает, раздражает меня. Есть ли лучший способ сделать это?