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

Откуда:
Сообщений: 44
Добрый день
Есть код
------
------
if что-то
begin
сделать то-то
сделать то-то
end

ALTER PROCEDURE procname as
select
бла,бла,бла
from table

проблема в том, что если гоню весь скрипт целиком, то вываливается ошибка: Incorrect syntax near the keyword 'PROCEDURE'
если выделяю только текст процедуры, то она нормально выполняется.
Подскажите в чем засада?
14 июн 11, 14:14    [10810329]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
losaped,

А если прочесть?
14 июн 11, 14:22    [10810394]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
Albatross
Member

Откуда:
Сообщений: 1001
losaped,

перед Alter нужно поставить GO
14 июн 11, 14:30    [10810480]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Albatross
losaped,

перед Alter нужно поставить GO
Сомнительное утверждение.
Это смотря какой клиент будет слать скрипт серверу на выполнение...
14 июн 11, 14:41    [10810588]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
Albatross
Member

Откуда:
Сообщений: 1001
iap,

согласен, да
14 июн 11, 14:46    [10810625]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
losaped
Member

Откуда:
Сообщений: 44
Albatross
losaped,

перед Alter нужно поставить GO

Ставил GO, Но тогда ругается, что некорректный синтаксис рядом с END, который выше
Сейчас уточню код:

declare @script int
set @script=1

IF EXISTS (SELECT * FROM SCRIPT_HISTORY
				WHERE SERIAL = @script)
    PRINT '!!!!Этот скрипт уже выполнен!!!!'	
ELSE
BEGIN
    if что-то
    begin 
        сделать то-то
        сделать то-то
    end

    ALTER PROCEDURE procname as
    select
    бла,бла,бла
    from table
END
может go нельзя поставить из-за того, что этот код находится внутри BEGIN\END?
Выполняется просто из студии.
Если кто-то понял смысл может подскажете как лучше осуществить задумку?
14 июн 11, 14:47    [10810629]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
losaped,

Я фигею, Клава, в вашем ресторане.

Инструкцию ALTER PROCEDURE нельзя объединять с другими инструкциями Transact-SQL в одном пакете.
14 июн 11, 14:50    [10810654]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
losaped
...Если кто-то понял смысл может подскажете как лучше осуществить задумку?
Нельзя в одном батче писать ALTER и ещё что-то...
Включите свой ALTER в динамику.
14 июн 11, 14:52    [10810687]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
losaped
Member

Откуда:
Сообщений: 44
tpg
losaped
...Если кто-то понял смысл может подскажете как лучше осуществить задумку?
Нельзя в одном батче писать ALTER и ещё что-то...
Включите свой ALTER в динамику.

Что значит в динамику? Объясните глупому
14 июн 11, 14:57    [10810747]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
losaped
tpg
пропущено...
Нельзя в одном батче писать ALTER и ещё что-то...
Включите свой ALTER в динамику.

Что значит в динамику? Объясните глупому
https://www.sql.ru/faq/faq_topic.aspx?fid=104
14 июн 11, 15:00    [10810779]     Ответить | Цитировать Сообщить модератору
 Re: ALTER PROCEDURE не работает  [new]
losaped
Member

Откуда:
Сообщений: 44
tpg, спасибо.
Можно закрывать
14 июн 11, 15:01    [10810789]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить