|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#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:16 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 16:38 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Так я и сам могу. Есть ли у кого-нибудь точно понимание как это работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 16:43 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Mandarin а при отсутствии точек с запятой запустится одна общая неявная транзакция на два update? Разве? Вообще-то некоторые инструкции уже требуют явного указания ";". И когда-то давно MS рекомендовало ставить везде этот разделитель. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 16:52 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Mandarin При наличии точек с запятой для каждого update запуститься своя неявная транзакция, а при отсутствии точек с запятой запустится одна общая неявная транзакция на два update? никакие точки с запятой не открывают и не закрывают никакие транзакции. 2 апдэйта при отсутствии явной транзакции (begin tran + commit/rollback) всегда приведут к двум независимым транзакциям, хоть вы там наставите/уберете точки с запятой, комментарии, пробелы, табуляции... ответ Соммарскога по приведенной ссылке совсем не об этом. у него такой экстремистский пример, когда при отсутствии точки с запятой перед throw в конструкции Код: sql 1. 2.
приведет к тому, что парсер прочтет это дело как ROLLBACK TRANSACTION THROW, где THROW - имя транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 17:15 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#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, 17:51 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Mandarin Есть ли у кого-нибудь точно понимание как это работает? По ссылке прямо в самом начале выдачи исчерпывающее описание. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 18:18 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Mandarin, отсутствие точки с запятой или написание может привести к синтаксической ошибке при компиляции процедуры. Других последствий не имеет. Рекомендовано всегда заканчивать выражения точкой с запятой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 18:43 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Как-то раз столкнулся с необходимостью использования ";". Не помню подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 19:25 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
L_argo Как-то раз столкнулся с необходимостью использования ";". Не помню подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 19:40 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич L_argo Как-то раз столкнулся с необходимостью использования ";". Не помню подробностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 08:49 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
andreymx Гавриленко Сергей Алексеевич пропущено... Перед with и после merge. with - ключевое слово, которое, помимо CTE, используется как минимум в хинтах. ; перед with показывает парсеру, что это именно CTE. И да, в DDL TVF c CTE точка с запятой не нужна - более того, она приводит к синтаксической ошибке (что тоже вполне объяснимо). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:02 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
мне с этой точки зрения оракл больше нравится в конце каждого оператора точка с запятой каждая процедура бегинится и ендится тут более жестко, зато прозрачно но это имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:19 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
andreymx мне с этой точки зрения оракл больше нравится в конце каждого оператора точка с запятой каждая процедура бегинится и ендится тут более жестко, зато прозрачно но это имхо Ну я просто по сишной привычке всегда ставлю ; везде, где её можно поставить. Мне так потом исходники читать проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:27 |
|
Точка с запятой в хранимых процедурах
|
|||
---|---|---|---|
#18+
andreymx Гавриленко Сергей Алексеевич пропущено... Перед with и после merge. После merge, видимо, чтобы гарантировать, что операторы insert/update/delete относятся к merge. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 09:27 |
|
|
start [/forum/topic.php?fid=46&msg=40037754&tid=1685182]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 294ms |
total: | 536ms |
0 / 0 |