Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sp_executesql 'alter procedure...' + параметры  [new]
Astakhov
Member

Откуда:
Сообщений: 255
День добрый.
Подскажите PLS, можно ли малой кровью обойти проблему?
Есть множество SQL 2000 серверов. На всех установлена некая "приблуда", которая исполняет команды с центрального сервера.

Все было хорошо, но тут мне потребовалось глобально обновить одну из процедур и вот с чем столкнулся: "приблуда" любую команду исполняет с параметрами, на всякий случай передает например Дату-время центрального сервера, собственный ID или еще какую инфу.

В результате если передается команда
insert into LinkSrv.kuku.dbo.tbl(q) values (1)
то SQL ее получит примерно так:
exec sp_executesql N'insert into LinkSrv.kuku.dbo.tbl(q) values (1)', N'@c bigint', @c = 123

Теперь сама проблема:
Хочу обновить некую процедуру, пишу команду
alter procedure ___test(@a int, @b int) as	select @a + @b
exec sp_executesql N'alter procedure ___test(@a int, @b int) as	select @a + @b'
выполняется на ура, но приблуда выполняет команду с параметрами:
exec sp_executesql N'alter procedure ___test(@a int, @b int) as	select @a + @b', N'@c bigint', @c = 123
как результат
Server: Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'procedure'.
Server: Msg 137, Level 15, State 1, Line 3
Must declare the variable '@a'.
Можно ли как-то обойти проблему изменив запрос задания или надо менять программу исполняющую их?
8 авг 11, 11:50    [11084615]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql 'alter procedure...' + параметры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
exec sp_executesql N'exec(''alter procedure ___test(@a int, @b int) as	select @a + @b'')'
?
8 авг 11, 11:57    [11084674]     Ответить | Цитировать Сообщить модератору
 Re: sp_executesql 'alter procedure...' + параметры  [new]
Astakhov
Member

Откуда:
Сообщений: 255
Огромное спасибо.
Все отработало.
8 авг 11, 12:09    [11084783]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить