2013-04-24 5 views
0

Мне нужно изменить хранимую процедуру, и я хотел бы получить представление о том, что на самом деле делает «изменение» хранимой процедуры. У меня есть хранимая процедура, и в нем заявление, как:Изменяет ли измененная хранимая процедура только определение хранимой процедуры?

ALTER PROCEDURE [dbo].[get_orders] 
    INSERT INTO customer (id, date, name) 
    VALUES(@id, getdate(), @name) 

    SELECT 
    full_id, 
    fname, 
    lname, 
    ... 
    FROM orders 

Если я изменить эту хранимую процедуру (правая кнопка мыши на зре в SSMS, и выберите «Изменить»), добавив столбец в заявление Выберите для пример, а затем нажмите «Выполнить» (или нажмите F5), это просто обновит определение хранимой процедуры или будет также «запускать» код в нем, например, запустить инструкцию «INSERT» (или если есть «УДАЛИТЬ») и на самом деле сделать некоторые вставки (или удаления)?

Я предполагаю, что он просто обновит хранимую процедуру и фактически не запустит в ней запросы, но я просто хочу быть уверенным. Извините, если этот вопрос кажется основным, но я не мог легко найти ответ.

Заранее благодарен!

+0

Вы меняете «кишки» процедуры. Но разрешения остаются неизменными. Если вы сбросите/повторно добавите, вы потеряете права, которые изначально были с ним. Это 2-процентная версия. – granadaCoder

+0

Если вы измените «подпись» (аргументы), это может быть шарик motzah. – granadaCoder

ответ

2

Когда вы используете alter определение хранимой процедуры, которое все, что вы делаете, - изменение определения/кода внутри указанной процедуры. Это не будет execute процедура, для этого вам нужно будет exec вашей процедурой после того, как она была alter ред.

+0

спасибо, что имеет смысл, хорошее объяснение. –

1

Если вы выполните в этом заявлении, он должен хранить изменения в процедуре.

Когда вы найдете свою процедуру в проводнике, нажмите «Выполнение», затем запустите процедуру.

+0

спасибо, это было очень полезно. –

Смежные вопросы