powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / BEGIN TRANSACTION + ALTER DATABASE
8 сообщений из 8, страница 1 из 1
BEGIN TRANSACTION + ALTER DATABASE
    #39799701
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Вопрос про то, можно ли выполнить ALTER DATABASE внутри блока транзакции? Сейчас при выполнении ALTER DATABASE пишет ошибку, что данный метод не может быть выполнен внутри транзакции. Может существует способ "что-то выполнить" внутри транзакции и "что-то выполненное" не будет касаться текущей транзакции

нужно выполнить изменение совместимости БД:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
BEGIN TRANSACTION
--
-- выполнение множества различных скриптов
--
DECLARE @dbname					NVARCHAR(100) = db_name()
EXECUTE('ALTER DATABASE ' +@dbname+ ' SET COMPATIBILITY_LEVEL = 130')

--
-- выполнение множества различных скриптов
--

COMMIT TRANSACTION
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799707
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS,

Вам нужно именно транзакционный alter database? Его нет. Если про из текущей транзакции выполнить внетранзакционный alter database варианты есть. Loopback linkedserver, clr с отдельным коннектор. Поищите по форуму "автономные транзакции"
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799709
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLexИгорь_UUS,

Вам нужно именно транзакционный alter database? Его нет. Если про из текущей транзакции выполнить внетранзакционный alter database варианты есть. Loopback linkedserver, clr с отдельным коннектор. Поищите по форуму "автономные транзакции"


Именно "из текущей транзакции выполнить внетранзакционный alter database". Скажите варианты есть в виде скриптов выполнить? (например, clr точно не подойдёт).
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799717
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой-то новый вид костылей
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799732
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaKкакой-то новый вид костылей


пускай костыли... это обойти 1 раз надо... начало и окончание транзакции "вшито" и доступа у меня туда нет(( костыль как раз и нужен
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799736
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
declare @s varchar(8000);
select @s = 'sqlcmd -S ' + @@servername + ' -E -Q "alter database ' + quotename(db_name()) + ' set compatibility_level = 130;"';
exec xp_cmdshell @s;
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799738
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSTaPaKкакой-то новый вид костылей


пускай костыли... это обойти 1 раз надо... начало и окончание транзакции "вшито" и доступа у меня туда нет(( костыль как раз и нужен
это идиотизм, внутри транзакции делать нельзя, если и воткнуть неким чудом, то это будет применено для всех, продолжайте расставлять грабли
...
Рейтинг: 0 / 0
BEGIN TRANSACTION + ALTER DATABASE
    #39799751
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKто это будет применено для всех,Это же, наверное, какой то инсталлятор.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / BEGIN TRANSACTION + ALTER DATABASE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]