【问题标题】:Does modifying a stored procedure just update the stored procedure definition?修改存储过程是否只是更新存储过程定义?
【发布时间】:2013-04-24 13:54:54
【问题描述】:

我需要修改一个存储过程,并且我想了解“修改”存储过程的实际作用。我有一个存储过程,其中有如下语句:

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

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

如果我修改这个存储过程(右键单击 SSMS 中的 sp,然后选择“修改”),例如通过在 Select 语句中添加一列,然后单击“执行”(或按 F5),这是否会更新存储过程定义,或者它是否也会“运行”其中的代码,例如,运行“INSERT”语句(或者如果有“DELETE”)并实际执行一些插入(或删除)?

我假设它只会更新存储过程,而不是实际运行其中的查询,但我只是想确定一下。对不起,如果这个问题看起来很简单,但我无法轻易找到答案。

提前致谢!

【问题讨论】:

  • 您正在改变程序的“胆量”。但是权限保持不变。如果您删除/重新添加,您将失去最初的权限。那是 2 美分的版本。
  • 如果你改变了“签名”(参数),那可能是一个莫扎球。

标签: sql sql-server stored-procedures


【解决方案1】:

当您alter 时,您所做的就是存储过程的定义——更改所述过程中的定义/代码。它不会转到execute 程序,要这样做,您需要在altered 后exec 您的程序。

【讨论】:

    【解决方案2】:

    如果您在该语句上执行它应该只存储过程更改。

    当您在资源管理器中找到您的程序然后点击执行时,它将运行该程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多