2009-11-09 7 views
1

Что такое ключевое слово SQL для LINQ-to-SQL FirstOrDefault или SingleOrDefault?LINQ FirstOrDefault в SQL-скрипте?

Это TOP(1)?

Пример:

SELECT TOP(1) @ItemCode = ItemCode FROM VendorItem WHERE VendorId = @VendorId 

Там не может быть больше 1 результатов в любом случае, так как есть уникальный ключ constranint, я должен изложить TOP (1) или что это такое?

Примечание: мне не нужны ответы LINQ, мой вопрос заключается в том, как написать сценарий sql.

ответ

3

Если существует уникальное ограничение ключа, вам не нужно ничего добавлять, чтобы иметь поведение FirstOrDefault. Для других запросов вы можете добавить

LIMIT 1

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

Редактировать после комментария: Чтобы получить его как скаляр в .NET, вы можете использовать метод SQLCommand.ExecuteScalar.

+0

Вы имеете в виду, что я могу объявить скалярную переменную и выбрать для нее результаты. Поправьте меня, если я ошибаюсь. – Shimmy

+0

Мне действительно потребовалось его значение ret для SQL Computed Column, но в любом случае, из вашего обновления я мог понять, что я не ошибся :) Большое спасибо. – Shimmy