Пустой оператор SET (без назначений параметров SET) разрешен - PullRequest
1 голос
/ 10 июня 2019

Документация MS о различиях между уровнем совместимости 80 и уровнем 90 говорит об уровне совместимости 80 : «Пустой оператор SET (без назначений опции SET) разрешен».Что такое пустой оператор SET (без назначений параметров SET)?Пожалуйста, дайте мне пример, чтобы уточнить это?

1 Ответ

0 голосов
/ 10 июня 2019

Это, кажется, очень старое поведение, и единственное, что я обнаружил - это какой-то немецкий форум :

В 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.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...