Транзакция на несколько CREATE VIEW
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Транзакция на несколько CREATE VIEW Expand / Collapse
Автор
Сообщение
15.03.2006 12:21
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Друзья, пишу скрипт на создание нескольких VIEW,
и нужно на это дело создать транзакцию.
Для этого declare @flag - переменную, как флаг ошибок, присваиваю ей значение @@error после каждого CREATE. Но CREATE VIEW сильно ругается без GO.
А после GO скрипт не видит @flag, можно конечно создать временную таблицу и работать с ней как с @flag, но после GO скрипт не видит и begin tran.
Как быть???
Сообщ. #892736
24.03.2006 12:51
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 24.03.2006 12:42
Сообщ.: 55, Visits: 606
Нельзя помещать несколько выражений create view в один блок команд и, следовательно, для помещения их в одну транзакцию необходимо писать:

begin tran tr1
go
CREATE VIEW View1
AS
SELECT * FROM table1
go
CREATE VIEW View2
AS
SELECT * FROM table2
go
commit tran tr1

При этом определенные переменные после поступления команды go потеряются.
Выход, я думаю, - не запихивать "CREATE VIEW" по три штуки в одну транзакцию, а выполнять их последовательно с обработкой возможной ошибки после каждого
"CREATE VIEW".
Сообщ. #893597
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 4:26