Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Вниз

MsSql2000+транзакции   Найти похожие ветки 

 
em240 ©   (2007-11-27 10:14) [0]

Есть хранимая процедура, которая включает в себя 3 update.
Если я явно не задаю начало и конец транзакции, то при запуске процедуры они происходят к контексте одной транзакции или 3-х?


 
ЮЮ ©   (2007-11-27 10:18) [1]

Одной, естественно.
З.Ы. ИМХО, на всякий случай :)


 
DrPass ©   (2007-11-27 10:19) [2]


> Одной, естественно.

Трех, естественно. В MS SQL хранимые процедуры работают не в контексте транзакций. И для каждого update будет неявно создаваться своя транзакция и после выполнения автоматически будет делаться коммит


 
Skyle ©   (2007-11-27 10:20) [3]

Хранимая процедура суть транзакция.


 
ЮЮ ©   (2007-11-27 10:24) [4]

> И для каждого update будет неявно создаваться своя транзакция
> и после выполнения автоматически будет делаться коммит


На таком MS SQL я бы не стал рабртвть.
Слабу богу он ведет себя не так.


 
em240 ©   (2007-11-27 10:26) [5]

Версия  2000.


 
Skyle ©   (2007-11-27 10:28) [6]

Надо посмотреть на значение IMPLICIT_TRANSACTIONS, может и будет вести.


 
DrPass ©   (2007-11-27 10:30) [7]


> Слабу богу он ведет себя не так.

См.
> Skyle ©   (27.11.07 10:28) [6]


По умолчанию так и ведет :)


 
em240 ©   (2007-11-27 10:30) [8]

Можно подробнее или ссылку? а то я запутался. :)


 
ЮЮ ©   (2007-11-27 10:38) [9]

> Надо посмотреть на значение IMPLICIT_TRANSACTIONS, может
> и будет вести.

Посмотрел. Действительно.

If the connection is already in an open transaction, the statements do not start a new transaction.

БДЕ-компоненты, помню, сами стартовали транзакцию. Как АДО - не уточнял, ибо в своем "ядре" все запросы выволняются в рамках чвно открытой транзакции.

Поэтому всегда работал в режиме If the connection is already in an open transaction


 
em240 ©   (2007-11-27 10:39) [10]

Так  кто прав? :)


 
Сусл ©   (2007-11-27 10:42) [11]


>  [10] em240 ©   (27.11.07 10:39)
> Так  кто прав? :)

ты, ибо лучшей доки, чем BOL (дока штатная от  mssql) просто не видел.


 
DiamondShark ©   (2007-11-27 12:53) [12]


> БДЕ-компоненты, помню, сами стартовали транзакцию

БиДЕ-компоненты вообще должны сдохнуть. Слишком они инициативные.


 
em240 ©   (2007-11-27 14:02) [13]

Если я явно не задаю начало и конец транзакции, то при запуске процедуры они происходят к контексте одной транзакции или 3-х?

т.е. если если какой то update
не отработает а другие отработаю то будет соммит?


 
Skyle ©   (2007-11-28 06:18) [14]

Практика - критерий истины.


 
Bless ©   (2007-11-28 09:10) [15]


> em240 ©   (27.11.07 14:02) [13]
>
> Если я явно не задаю начало и конец транзакции, то при запуске
> процедуры они происходят к контексте одной транзакции или
> 3-х?


Три update-а, обернутых в хранимку, ничем в плане транзакций не отличаются от просто трех update-ов.


 
Weter   (2007-11-28 13:05) [16]

т.е. если если какой то update
не отработает а другие отработаю то будет соммит?


Как правило по умолчанию так. В MS SQL 2000 несколько методов определения, а именно: автоматический, явный и подразумеваемый. Хотя реально два автоматический и неявный(подразумеваемый), явный можно рассматривать как надстройку на ними. Так вот по умолчанию используется автоматический режим, где каждая команда рассматриваться как отдельная транзакция. А вот при неявном режиме пока текущая тразакция не закоммитчена, то новая не начнется и если после каждого оператора явно не заканчивать транзакцию то все три update, в данном случае будут выполнтся в рамках одной транзакции. Команда переключения режима, как уже было сказано выше
SET  IMPLICIT_TRANSACTIONS [ON|OFF]



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
2-1195211860
Yurij-7
2007-11-16 14:17
2007.12.30
Помогите с запросом


2-1196942339
Алекс
2007-12-06 14:58
2007.12.30
библиотеки с классами других приложений


15-1196074479
No_Dead
2007-11-26 13:54
2007.12.30
Логика БД


2-1197033931
Максим
2007-12-07 16:25
2007.12.30
Проверка


4-1181649187
torin-sd
2007-06-12 15:53
2007.12.30
Нужно определить владельцев всех процессов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский