|
|
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
У меня несколько странная ситуация: очень много однотипных баз данных в которые надо достаточно часто вносить одинаковые изменения. Может у кого-нибудь есть едеи как можно создать новую или изменить уже существующую хранимую процедуру задавая имя базы данных в переменной. Для других изменений я использую курсор по именам баз, генерирую строку типа 'USE USERDB_Name '+'[All my changes I need to be done]' и выполняю. С процедурами это не проходит. Ошибка: 'ALTER PROCEDURE' must be the first statement in a query batch Может быть это вообще невозможно сделать? Заранее очень благодарна за ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 01:01:14 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
Горю Вашему очень легко помочь. Достаточно после 'USE USERDB_Name ' и перед '[All my changes I need to be done]' поставить волшебное слово + ' GO ' + . И... Что-то произойдет :) -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 01:13:57 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
Все было бы действительно просто если бы 'GO' можно было бы выполнить в строке. Но при выполнении возникает ошибка : Incorrect syntax near 'GO' :((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 01:22:46 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
А почему бы не хранить эту процедуру только в одной БД и не ссылаться на нее из остальных по полному имени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 04:44:15 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
exec xp_execresultset N'select ''alter procedure dbo.example as select 1''',N'TestDb' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 15:39:06 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
To Denis.R. Спасибо огромное!!! Вы меня спасли :)) Если не секрет, где можно найти описание на xp_execresultset. Что-то я нигде не нахожу To Everyone Я очень благодарна за внимание к моей проблеме Еще раз спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2002, 19:52:13 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
А можно запустить процедуру из БД и увидеть результат ее работы, если имя БД известно в переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2002, 10:18:26 |
|
||
|
Как создать или изменить процедуру в N базах данных
|
|||
|---|---|---|---|
|
#18+
declare @i varchar(25), @j varchar(255) set @i='pubs' set @j='d:\mssql7\binn\isql -Usa -P -d ' + @i + ' -i d:\Procedures\NewProc.txt' exec ('master..xp_cmdshell ' + "'" + @j + "'") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2002, 11:54:58 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1822172]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 291ms |

| 0 / 0 |
