У меня есть запрос, как показано ниже:Вызов функции в пункте, где
SELECT * FROM Members (NOLOCK)
WHERE Phone= dbo.FormatPhone(@Phone)
Теперь здесь я понимаю, что форматирование должно быть применено на переменном на колонке. Но следует ли применить его к переменной для назначения какой-либо другой локальной переменной, а затем использовать ее (как показано ниже).
Set @SomeVar = dbo.FormatPhone(@Phone)
SELECT *
FROM Members (NOLOCK) WHERE Phone= @SomeVar
Какой способ лучше или оба хороши?
EDIT: И как первый запрос отличается от
SELECT * FROM Members (NOLOCK)
WHERE dbo.FormatPhone(Phone) = @Phone
Я прошел через сообщение, и в нем говорится о том, что я не использую NOLOCK с инструкциями Update/Insert. почему вы здесь проблема? –
Вы имеете в виду использование с (nolock) вместо NOLOCK? –
Вы * намерение * читать неактивные данные? Или вы добавили NOLOCK в качестве обходного пути для решения проблем с совместимостью? –