如何在 SQL Server 中修改存储过程?

源内容(英文)

在这篇文章中,我们将学习如何在 MS SQL 中修改已创建的存储过程。我们可以通过两种方式来修改存储过程:一种是使用名为 SSMS 的客户端工具,另一种是结合使用 MS SQL Server 中的 T-SQL 语句和 SSMS。

方法 1:使用 SQL Server Management Studio (SSMS) 修改存储过程

  • 在“对象资源管理器”中,连接到数据库引擎实例。

!image

  • 展开该存储过程所属的数据库。

!image

  • 展开“存储过程”,右键点击该存储过程,然后选择“修改”。

!image

  • 通过现成的 SQL 语句修改存储过程。

方法 2:使用 T-SQL 语句和 SSMS。

  • 在 SSMS 的“对象资源管理器”中,连接到数据库引擎实例。
  • 创建一个新数据库
  • 使用刚才创建的数据库
  • 使用 SSMS 打开一个新的查询窗口
  • 使用 ALTER PROCEDURE 语句修改存储过程

示例 1:

在这个示例中,我们将使用 T-SQL 在数据库中创建并修改一个名为 My_procedure 的存储过程。首先在 SSMS 中创建两个查询页,一个用于创建存储过程,另一个用于修改它。

创建存储过程:

CREATE DATABASE Sample_DB;
GO

USE Sample_DB;
GO

CREATE PROCEDURE My_Procedure 
    @first_name varchar(20),
    @last_name  varchar(20)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT @first_name , @last_name;
END
GO

EXEC My_Procedure ‘Andy‘, ‘Jessy‘;

输出结果: 输出结果展示了上述存储过程的创建和执行情况。
修改已创建的存储过程:

ALTER PROCEDURE [dbo].[My_Procedure] 
    @first_name varchar(20),
    @last_name  varchar(20)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT  @last_name + ‘, ‘ + @first_name;
END

输出结果: 执行上述代码,然后在单独的页面中运行该存储过程。

示例 2: ​

在这个示例中,我们将以不同的方式修改上例中创建的同一个存储过程。请在 SSMS 中创建 3 个页面:第一个用于创建存储过程,第二个用于修改,第三个用于执行修改后的存储过程。

我们的目标是向 My_procedure 添加 3 个参数和一个 CASE 语句。

第 1 页: 创建存储过程

CREATE PROCEDURE My_Procedure 
    @first_name varchar(20),
    @last_name  varchar(20),
    @choice int
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT @first_name , @last_name , @choice;
END
GO

EXEC My_Procedure ‘Andy‘, ‘Jessy‘ , 1;

第 2 页: 修改存储过程

ALTER PROCEDURE [dbo].[My_Procedure] 
    @first_name varchar(20),
    @last_name  varchar(20),
    @choice int
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT  ‘Name‘ = case @choice
    when 1 then @first_name
    when 2 then @last_name
    ELSE @first_name + ‘ ‘ + @last_name
    END
END

第 3 页: 执行修改后的存储过程

EXEC My_Procedure ‘Andy‘, ‘Jessy‘, 2;

输出结果: ​

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/27742.html
点赞
0.00 平均评分 (0% 分数) - 0