Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Символ ;  [new]
malyan
Member

Откуда:
Сообщений: 48
Зачем в запросах используют символ ; (точка с запятой)?

Ευχαριστώ εκ των προτέρων!
29 июл 10, 09:26    [9175380]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
malyan,

этот символ завершает команду.
В SQL2000 был необязателен. Но в SQL2005 появились места, где требуется этот символ.
Иначе - сообщение об ошибке.
29 июл 10, 09:29    [9175399]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
malyan
Member

Откуда:
Сообщений: 48
iap
malyan,

этот символ завершает команду.
В SQL2000 был необязателен. Но в SQL2005 появились места, где требуется этот символ.
Иначе - сообщение об ошибке.


А можете привести пример этих мест?
29 июл 10, 09:49    [9175520]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
BOL-> WITH common_table_expression (Transact-SQL)

...
When a CTE is used in a statement that is part of a batch, the statement before it must be followed by a semicolon.
29 июл 10, 09:50    [9175534]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
iap
malyan,

этот символ завершает команду.
В SQL2000 был необязателен. Но в SQL2005 появились места, где требуется этот символ.
Иначе - сообщение об ошибке.

Еще встречал вот такое, в профайлере, клиент на какой-то старой дельфе написан, и таким образом компоненты вызывают хранимки. Зачем там точка с запятой - так и не понял.
declare @p2 int
set @p2=8
exec Action_LastDay;1 3122,@p2 output
select @p2
29 июл 10, 10:06    [9175693]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SomewhereSomehow
iap
malyan,

этот символ завершает команду.
В SQL2000 был необязателен. Но в SQL2005 появились места, где требуется этот символ.
Иначе - сообщение об ошибке.

Еще встречал вот такое, в профайлере, клиент на какой-то старой дельфе написан, и таким образом компоненты вызывают хранимки. Зачем там точка с запятой - так и не понял.
declare @p2 int
set @p2=8
exec Action_LastDay;1 3122,@p2 output
select @p2
У процедуры допускается номер версии, который отделяется от имени точкой с запятой.
То есть несколько процедур имеют одно и то же имя, но разные номера версий.
По-моему, это бесполезная фича. Разве что позволяет удалять одноимённые процедуры всех версий
командой DELETE <имя процедуры без версии>. Сомнительная полезность.

Это устаревший синтаксис. Microsoft пообещала его запретить в следующих версиях.
29 июл 10, 10:19    [9175804]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
iap,
спасибо, буду знать!
29 июл 10, 10:20    [9175824]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 659
UP

Вот, стало интересно где бы найти список обязательного использования (;) в боле не нашел

Перед WITH cte
После MERGE
...
8 июл 11, 13:53    [10945426]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
BOL->Batches

Each Transact-SQL statement should be terminated with a semicolon. This requirement is not enforced, but the ability to end a statement without a semicolon is deprecated and may be removed in a future version of Microsoft SQL Server.
8 июл 11, 14:01    [10945492]     Ответить | Цитировать Сообщить модератору
 Re: Символ ;  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 659
pkarklin,

Надо привыкать, да?! Ясно...
8 июл 11, 14:04    [10945534]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить