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

Откуда: Томск
Сообщений: 12
Народ поможите.
Необходимо перенести только "текст" сохраненных процедур из одной БД в другую. Если использовать скрипты, то они при переносе запускаются на выполнение, а этого не надо, т.к. среди процедур есть и процедуры на выполнение.
31 авг 04, 07:31    [919975]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
Может DTS заюзать
31 авг 04, 07:42    [919984]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Необходимо перенести только "текст" сохраненных процедур из одной БД в другую. Если использовать скрипты, то они при переносе запускаются на выполнение, а этого не надо, т.к. среди процедур есть и процедуры на выполнение.


Вы сами то поняли, что сказали?!
31 авг 04, 08:03    [919997]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
Может у человека среди скриптов, есть POST скрипты с инициализацией?
Ну тогда, надо в рабочей БД оскриптовать только ХП и перетащить в другую БД.
31 авг 04, 08:13    [920008]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
AlexanderVS
Может у человека среди скриптов, есть POST скрипты с инициализацией?
Ну тогда, надо в рабочей БД оскриптовать только ХП и перетащить в другую БД.


Можно уточнить, КАКИМ ОБРАЗОМ при выполнении инструкции CREATE PROC что-то может быть запущено на выполнение???
31 авг 04, 08:16    [920012]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Sergant
Member

Откуда: Томск
Сообщений: 12
Ну понять то я понимаю что сказал, может просто неправильно объяснил. Нужно следующее: перенести и заменить существующие хранимые процедуры из БД1 в идентичную по структуре БД2. Если использовать DTS при переносе хранимых процедур, то происходят также и обновление данных (у меня в итоге вообще все таблицы пустыми оказались). Поэтому я и задал вопрос, как заменить только "текст" хранимых процедур, без их инициализации и других побочных действий.
31 авг 04, 08:17    [920013]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Sergant
Member

Откуда: Томск
Сообщений: 12
pkarklin
Можно уточнить, КАКИМ ОБРАЗОМ при выполнении инструкции CREATE PROC что-то может быть запущено на выполнение???


Я только учусь :)), но может потому, что наверное в скрипте идет GO после каждой CREATE PROC ... текст процедуры?
31 авг 04, 08:20    [920016]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Я для синхронизации структуры БД, в том числе и ХП использую RedGate SQL Bundle.
В простейшем случае из EMа можно сгенерить SQL скрипт на все процедуры с генерацией DROP PROC... Данные не пострадают
31 авг 04, 08:22    [920019]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Если использовать DTS при переносе хранимых процедур, то происходят также и обновление данных (у меня в итоге вообще все таблицы пустыми оказались).


Ну так внимательней то надо параметры в DTS задавать, чтоб тока хп перенести, а данные не трогать!
31 авг 04, 08:22    [920020]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Sergant
Member

Откуда: Томск
Сообщений: 12
pkarklin
Ну так внимательней то надо параметры в DTS задавать, чтоб тока хп перенести, а данные не трогать!


Так в том то и дело, что галочку "copy data" я снял, а итог, - долгий процес копирования чего-то, с ошибкой переноса (fault) в конце
31 авг 04, 08:26    [920022]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Sergant
pkarklin
Можно уточнить, КАКИМ ОБРАЗОМ при выполнении инструкции CREATE PROC что-то может быть запущено на выполнение???


Я только учусь :)), но может потому, что наверное в скрипте идет GO после каждой CREATE PROC ... текст процедуры?


GO - это разделитель бачей в клиентских утилитах (QA) не более того. Так что внимательно разберитесь с галками в мастере експорта и все у вас получиться.

автор
Так в том то и дело, что галочку "copy data" я снял, а итог, - долгий процес копирования чего-то, с ошибкой переноса (fault) в конце


А как на счет снять галку Copy All Objects и по кнопе Select objects выбрать то, что нужно?!
31 авг 04, 08:29    [920029]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
pkarklin
Можно уточнить, КАКИМ ОБРАЗОМ при выполнении инструкции CREATE PROC что-то может быть запущено на выполнение???

Я имел в виду, то, что существуют НАПРМЕР, скрипты с текстами ХП, и там же в эти скриптах есть инициализирующие строки типа INSERT TableName ......
Вот человек и не хочет запускать свои скрипты.
ЗЫ Это предположение, не придирайтесь к нему :)
31 авг 04, 08:30    [920031]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Sergant
Member

Откуда: Томск
Сообщений: 12
pkarklin
А как на счет снять галку Copy All Objects и по кнопе Select objects выбрать то, что нужно?!


Ну эта подпись проблем не вызвала.

А проблема оказалась решалось просто как ....:)). Просто в БД откуда копировал ХП был юзвер, не занесенный в БД1. Из-за этого DTS и выдавал ошибку. Но всё равно спасибо всем, что помогли разобраться :))
31 авг 04, 08:39    [920040]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Ну я заканчиваю утиль, которая, в том числе, делает примерно следующее:
- компонента dbCopy - собирает все объекты БД и сохраняет их в файло.
- компонента dbPaste - обрабатывает файло от dbCopy и восстанавливает разницу на базе - получателе. Есть объект есть - делает ALTER, если нет - делает CREATE. Если есть и такой же, то не делает ничего. Потом пытается (пока именно пытается) прогнать гранты.
В итоге работа по тиражированию выглядит достаточно просто - сливаем с "девелоперской" базы образ в файло, файло и утиль раздаем "подписчикам", они в час "Х" бакапятся и пускают обновление. Потом собираем доклады и если все ок, стартуем в новой версии, если нет - ресторимся.
P.S.Там же есть еще и утиль для структуры базы данных.
31 авг 04, 10:43    [920395]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
AlexanderVS
Member

Откуда: Krasnoyarsk
Сообщений: 433
С нетерпением ждемссс окончания работ над утилем! Хотя и есть у меня свой метод, очень похожий на Ваш (я о нем где-то писал), но всеже он гораздо менее навороченный.
31 авг 04, 13:15    [921170]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
KOLCHOZ_POSTEVENT
Guest
Сделай из этого входной файл в OSQL
select [text] from dbname.dbo.syscomments C,dbname.dbo.sysobjects S where S.id=C.id and S.type='P'
и прогони с отловом в -o...
Чо будет?
31 авг 04, 13:37    [921309]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести сохраненные процедуры (только текст) из обной БД в другую?  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Не все так просто с syscomments :)
Начнем с того, что надо проверять QUOTED и ANSI NULL при переподнятии объектов.
31 авг 04, 13:55    [921421]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить