Czy jest możliwe uruchomienie wielu instrukcji DDL wewnątrz transakcji (w SQL Server)?
Zastanawiam się, czy możliwe jest uruchomienie wielu instrukcji DDL wewnątrz transakcji. Jestem szczególnie zainteresowany SQL Server, chociaż odpowiedzi z innymi bazami danych (przynajmniej Oracle, PostgreSQL) mogą być również interesujące.
Robiłem "CREATE TABLE" i "CREATE VIEW" dla utworzonej tabeli wewnątrz transakcji i wydaje się, że istnieją pewne niespójności i zastanawiam się, czy DDL nie powinny być wykonywane wewnątrz transakcji ...
Prawdopodobnie mógłbym przenieść DDL poza transakcję, ale chciałbym uzyskać do tego trochę informacji. Co znalazłem tak daleko:
Strona MSDNPoziomy izolacji w aparacie bazy danych mówi wyraźnie, żeistnieją ograniczenia dotyczące tego, jakie operacje DDL mogą być wykonywane w jawnej transakcji działającej pod izolacją migawki - ale nie używam izolacji migawek i powinno to skutkować błędem.Można to zinterpretować tak, aby operacje DDL mogły być wykonywane w jawnej transakcji na różnych poziomach izolacji?Oracle® Database Gateway dla SQL Server Podręcznik użytkownika # DDL Statements stwierdza, żetylko jedna instrukcja DDL może zostać wykonana w danej transakcji - czy jest to poprawne także w przypadku prostego użycia SQL Server?Dla Oracle:
W pytaniu SOJednostka testująca instrukcje DDL, które muszą znajdować się w transakcji mówi się, że Oracle wykonuje niejawne zatwierdzenie dla instrukcji DDL? (chociaż nie ma żadnych referencji)Jeśli coś ma znaczenie, robię to z Java za pomocą sterownika JDBC JTDS.
b.r. Touko