Вопрос в следующем. Есть база данных на MS SQL. В ней есть некоторый набор процедур(очень много).
Теперь встал вопрос внести небольшие изменения во всех эти процедуры. Изменения хоть и небольшие —
изменить названия некоторых таблиц — но открывать их руками, вносить изменения и компилить —
ну очень не хочется. Желательно сделать все это в скрипте. Ну что то типа :
select
name
from sysobjects where name like 'SABL%' and type = 'P'
open upd_proc
fetch next from upd_proc into @sn_name_tbl
while @@fetch_status = 0
begin
PRINT @sn_name_tbl
--Получить текст процедуры
--Внести изменения
--Откомпилировать
fetch next from upd_proc into @sn_name_tbl
Как получить текст процедуры и откомпилировать её ?
Здравствуйте, solo700, Вы писали:
S>Как получить текст процедуры и откомпилировать её ?
Текст хранится в системной табличке syscomments. Только надо учесть, что для длинных процедур там будет несколько строк.
А дальше все просто: меняем строку и выполняем alter proc...
Но, есть нюансы. Поэтому, лучшим вариантом мне представляется использование
SMO
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
S>Но, есть нюансы. Поэтому, лучшим вариантом мне представляется использование SMO
Большое спасибо ! Действительно есть заморочки с корректировкой процедур состоящих из нескольких строк в syscomments. Попробую оба метода.