Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как создать другую базу из хранимой процедуры  [new]
Bigov
Member

Откуда:
Сообщений: 37
Нужно создать другую базу из хранимой процедуры.
Есть скрипт на создание базы (таблицы, хранимки, триггера).
В хранимке этот скрипт передаю как текст:
EXECUTE (... Здесь текст скрипта на создание....);

Ругается, что не может создать триггера:
Сообщение 111, уровень 15, состояние 1, строка 251
CREATE TRIGGER должна быть первой инструкцией в пакетном запросе.


Подскажите реально ли вообще создать базу из триггера?
17 авг 09, 04:13    [7544359]     Ответить | Цитировать Сообщить модератору
 Re: Как создать другую базу из хранимой процедуры  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Правильно ругается...
Подсказака - скрипт можно разбивать на части (пакеты), напишите столько EXEC(...) сколько у вас пакетов.
17 авг 09, 06:36    [7544400]     Ответить | Цитировать Сообщить модератору
 Re: Как создать другую базу из хранимой процедуры  [new]
Bigov
Member

Откуда:
Сообщений: 37
tpg
Правильно ругается...
Подсказака - скрипт можно разбивать на части (пакеты), напишите столько EXEC(...) сколько у вас пакетов.

Но мне нужно чтобы триггер был в той базе.
То есть я выполняю хранимку из под базы DataBase1, а триггер должен быть создан в базе DataBase2.
А на инструкцию USE [DataBase2] ругается....
17 авг 09, 10:07    [7544788]     Ответить | Цитировать Сообщить модератору
 Re: Как создать другую базу из хранимой процедуры  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Скрипт показывайте, а то так долго можно на разных языках говорить.
17 авг 09, 10:10    [7544801]     Ответить | Цитировать Сообщить модератору
 Re: Как создать другую базу из хранимой процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
Bigov
tpg
Правильно ругается...
Подсказака - скрипт можно разбивать на части (пакеты), напишите столько EXEC(...) сколько у вас пакетов.

Но мне нужно чтобы триггер был в той базе.
То есть я выполняю хранимку из под базы DataBase1, а триггер должен быть создан в базе DataBase2.
А на инструкцию USE [DataBase2] ругается....

Дело не базе, а в том, что каждая команда CREATE должна выполняться отдельно. О чем вам и было сказано в сообщении
17 авг 09, 10:27    [7544906]     Ответить | Цитировать Сообщить модератору
 Re: Как создать другую базу из хранимой процедуры  [new]
Bigov
Member

Откуда:
Сообщений: 37
Да, похоже на то.
Вот и в MSDN нашел подтверждение:

MSDN
Ограничения триггеров

Инструкция CREATE TRIGGER должна быть первой инструкцией в пакете и может применяться только к одной таблице.

Триггер создается только в текущей базе данных, но может, тем не менее, содержать ссылки на объекты за пределами текущей базы данных.


http://msdn.microsoft.com/ru-ru/library/ms189799.aspx
17 авг 09, 13:05    [7545941]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить