Я пытаюсь установить переменную из запроса SQL:
declare @ModelID uniqueidentifer
Select @ModelID = select modelid from models
where areaid = 'South Coast'
Очевидно, я не делаю это правильно, так как это не работает. Может кто-нибудь предложить решение?
Спасибо!
sql
sql-server
tsql
Мистер крикет
источник
источник
Ответы:
Использование SELECT:
Используя SET:
Посмотрите этот вопрос, чтобы узнать разницу между использованием SELECT и SET в TSQL. .
Предупреждение
Если этот оператор выбора возвращает несколько значений (плохо для начала):
SELECT
переменной присваивается последнее возвращаемое значение (как сказано в womp) без каких-либо ошибок или предупреждений (это может вызвать логические ошибки)SET
произойдет ошибкаисточник
Если ваш оператор выбора возвращает несколько значений, вашей переменной присваивается последнее возвращаемое значение.
Для справки по использованию SELECT с переменными: http://msdn.microsoft.com/en-us/library/aa259186%28SQL.80%29.aspx
источник
источник
Я предпочитаю просто установить его из декларации
источник
Используйте,
TOP 1
если запрос возвращает несколько строк.источник
Вы можете использовать это, но помните, что ваш запрос дает 1 результат, множественные результаты вызовут исключение.
По-другому:
источник
В этом случае, если у вас есть два или более возвращенных результатов, то ваш результат является последней записью. Так что помните об этом, если вам могут быть возвращены еще две записи, поскольку вы можете не увидеть ожидаемый результат.
источник
Есть три подхода:
Ниже детали запроса преимущества и недостатки каждого:
источник
Для присвоения переменных с помощью SQL выберите лучший метод, как показано ниже
Если вам нужно назначить более одной переменной в одной строке, вы можете использовать этот же SELECT INTO
источник