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

Вопрос про то, можно ли выполнить 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
11.04.2019, 08:50
    #39799707
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BEGIN TRANSACTION + ALTER DATABASE
Игорь_UUS,

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

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


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


пускай костыли... это обойти 1 раз надо... начало и окончание транзакции "вшито" и доступа у меня туда нет(( костыль как раз и нужен
...
Рейтинг: 0 / 0
11.04.2019, 09:54
    #39799736
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BEGIN TRANSACTION + ALTER DATABASE
Код: 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
11.04.2019, 09:55
    #39799738
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BEGIN TRANSACTION + ALTER DATABASE
Игорь_UUSTaPaKкакой-то новый вид костылей


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


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