Вы можете использовать назначение SELECT для назначения нескольких переменных. Этот код генерирует одну строку констант и присваивает их каждой переменной.
SELECT
@var1 = 1,
@var2 = 'Zeus'
Вы даже можете запрашивать таблицы и делать назначения таким образом:
SELECT
@var1 = c.Column1,
@var2 = c.Column2,
FROM
Customers c
WHERE c.CustomerID = @CustomerID
Осторожно: этот код работает как цикл while.
- Если имеется несколько строк, каждая строка будет назначена переменным, а последняя строка останется той, что осталась там. Если вы не указали порядок, вы отказались от контроля над тем, какая строка будет последней строкой.
- Если строк нет, переменные вообще не будут назначены. Переменные не будут установлены в нуль - они останутся без изменений. Это ключевая проблема, если присваивание выполняется в цикле (обычно это приводит к бесконечному циклу, поскольку переменные никогда не меняются).
Предпочитают использовать назначение SET вместо назначения SELECT. Используйте назначение SELECT только при рассмотрении обоих вышеописанных сценариев.