Это, кажется, очень старое поведение, и единственное, что я обнаружил - это какой-то немецкий форум :
В SQL Server 2000 список устаревших функций в SQLСервер 2005 имеет уровень совместимости 80 с записью «Пустой оператор SET (без назначения параметров SET) разрешен».и уровень совместимости 90 с «пустым предложением SET».не допускается.".
Но что такое пустой оператор SET?
Моей первой мыслью была инструкция SET без какого-либо дополнительного присваивания. Но на самом деле эта идея была слишком подозрительной для меня, потому что то, что приносит оператор SETбез присваивания?
Только после некоторого исследования я кое-что нашел. На самом деле, в SQL Server 2000 возможно просто поместить SET в SP - без какого-либо присваивания.
Существует такженесколько странный синтаксис, который используется - по любой причине:
DECLARE @CustomerId As nchar (5)
SET SELECT @CustomerId = 'ALFKI'
SELECT * FROM dbo.Customers WHERE CustomerId = @CustomerId
Я даже не хочу думать о смысле и бессмысленности оператора SET SELECT. Дело в том, что SQL Server генерирует 2 оператора (SET иSELECT). И оператор SET без присваивания больше невозможен в SQL Server 2005.
Как только ничего подобного не существует, вы сохраняете, чтобы изменить уровень совместимости.