Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
21.01.2021, 16:16
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
Всем привет! Подскажите пожалуйста как измениться поведение хранимой процедуры (или транзакции) при наличии или отсутствии точки запятой в конце каждого оператора. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Если я руками не начинаю транзакцию "begin tran", то транзакция запускается неявно. При наличии точек с запятой для каждого update запуститься своя неявная транзакция, а при отсутствии точек с запятой запустится одна общая неявная транзакция на два update? Microsoft SQL Server 2017 (RTM-CU22) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 16:38
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 16:43
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
Сон Веры Павловны, Так я и сам могу. Есть ли у кого-нибудь точно понимание как это работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 16:52
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
Mandarin а при отсутствии точек с запятой запустится одна общая неявная транзакция на два update? Разве? Вообще-то некоторые инструкции уже требуют явного указания ";". И когда-то давно MS рекомендовало ставить везде этот разделитель. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 17:15
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
Mandarin При наличии точек с запятой для каждого update запуститься своя неявная транзакция, а при отсутствии точек с запятой запустится одна общая неявная транзакция на два update? никакие точки с запятой не открывают и не закрывают никакие транзакции. 2 апдэйта при отсутствии явной транзакции (begin tran + commit/rollback) всегда приведут к двум независимым транзакциям, хоть вы там наставите/уберете точки с запятой, комментарии, пробелы, табуляции... ответ Соммарскога по приведенной ссылке совсем не об этом. у него такой экстремистский пример, когда при отсутствии точки с запятой перед throw в конструкции Код: sql 1. 2.
приведет к тому, что парсер прочтет это дело как ROLLBACK TRANSACTION THROW, где THROW - имя транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 17:51
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
Mandarin Всем привет! Подскажите пожалуйста как измениться поведение хранимой процедуры (или транзакции) при наличии или отсутствии точки запятой в конце каждого оператора. SQL Server 2005’s Books Online says: Many code examples use a semicolon (;) as a Transact-SQL statement terminator. Although the semicolon is not required, using it is considered a good practice . You know, like flossing your teeth, and puff-puff-give. But SQL Server 2008 marked a change: Although the semicolon is not required for most statements in this version of SQL Server, it will be required in a future version. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 18:18
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
Mandarin Есть ли у кого-нибудь точно понимание как это работает? По ссылке прямо в самом начале выдачи исчерпывающее описание. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 18:43
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
Mandarin, отсутствие точки с запятой или написание может привести к синтаксической ошибке при компиляции процедуры. Других последствий не имеет. Рекомендовано всегда заканчивать выражения точкой с запятой. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 19:25
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
Как-то раз столкнулся с необходимостью использования ";". Не помню подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 19:40
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
L_argo Как-то раз столкнулся с необходимостью использования ";". Не помню подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2021, 08:49
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
Гавриленко Сергей Алексеевич L_argo Как-то раз столкнулся с необходимостью использования ";". Не помню подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2021, 09:02
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
andreymx Гавриленко Сергей Алексеевич пропущено... Перед with и после merge. with - ключевое слово, которое, помимо CTE, используется как минимум в хинтах. ; перед with показывает парсеру, что это именно CTE. И да, в DDL TVF c CTE точка с запятой не нужна - более того, она приводит к синтаксической ошибке (что тоже вполне объяснимо). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2021, 09:19
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
мне с этой точки зрения оракл больше нравится в конце каждого оператора точка с запятой каждая процедура бегинится и ендится тут более жестко, зато прозрачно но это имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2021, 09:27
|
|||
---|---|---|---|
|
|||
Точка с запятой в хранимых процедурах |
|||
#18+
andreymx мне с этой точки зрения оракл больше нравится в конце каждого оператора точка с запятой каждая процедура бегинится и ендится тут более жестко, зато прозрачно но это имхо Ну я просто по сишной привычке всегда ставлю ; везде, где её можно поставить. Мне так потом исходники читать проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.01.2021, 09:27
|
|||
---|---|---|---|
Точка с запятой в хранимых процедурах |
|||
#18+
andreymx Гавриленко Сергей Алексеевич пропущено... Перед with и после merge. После merge, видимо, чтобы гарантировать, что операторы insert/update/delete относятся к merge. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1685182]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 320ms |
total: | 614ms |
0 / 0 |