修改存储过程

来源:互联网 发布:交通线路仿真 编程 编辑:程序博客网 时间:2024/05/16 09:32

修改存储过程


SQL Server 2012
其他版本
0(共 1)对本文的评价是有帮助 评价此主题

本主题介绍了如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中修改存储过程。

  • 开始之前: 限制和局限、安全性

  • 更改过程,使用: SQL Server Management Studio、Transact-SQL

开始之前

修改存储过程

您可以使用以下项之一:

  • SQL Server Management Studio

  • Transact-SQL

使用 SQL Server Management Studio

在 Management Studio 中修改过程

  1. 在对象资源管理器中,连接到数据库引擎实例,然后展开该实例。

  2. 展开“数据库”、过程所属的数据库以及“可编程性”

  3. 展开“存储过程”,右键单击要修改的过程,再单击“修改”

  4. 修改存储过程的文本。

  5. 若要测试语法,请在“查询”菜单上单击“分析”

  6. 若要将修改信息保存到过程定义中,请在“查询”菜单上单击“执行”

  7. 若要将更新的过程定义另存为 Transact-SQL 脚本,请在“文件”菜单上单击“另存为”。 接受该文件名或将其替换为新的名称,再单击“保存”

安全说明 安全说明

验证所有用户的输入。 验证前请勿连接用户输入。 绝对不要执行根据尚未验证的用户输入构造的命令。

使用 Transact-SQL

在查询编辑器中修改过程

  1. “对象资源管理器”中,连接到某个数据库引擎实例,再展开该实例。

  2. 展开“数据库”,然后展开过程所属的数据库。 或者,在工具栏上,从可用数据库列表中选择该数据库。 对于此示例,选择 AdventureWorks2012 数据库。

  3. “文件”菜单上,单击“新建查询”

  4. 复制以下示例并将其粘贴到查询编辑器中。 此示例创建 uspVendorAllInfo 过程,该过程返回 Adventure Works Cycles 数据库中所有供应商的名称、所提供的产品、信用等级以及可用性。

    Transact-SQL
    USE AdventureWorks2012;GOIF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL     DROP PROCEDURE Purchasing.uspVendorAllInfo;GOCREATE PROCEDURE Purchasing.uspVendorAllInfoWITH EXECUTE AS CALLERAS    SET NOCOUNT ON;    SELECT v.Name AS Vendor, p.Name AS 'Product name',       v.CreditRating AS 'Rating',       v.ActiveFlag AS Availability    FROM Purchasing.Vendor v     INNER JOIN Purchasing.ProductVendor pv      ON v.BusinessEntityID = pv.BusinessEntityID     INNER JOIN Production.Product p      ON pv.ProductID = p.ProductID     ORDER BY v.Name ASC;GO
  5. “文件”菜单上,单击“新建查询”

  6. 复制以下示例并将其粘贴到查询编辑器中。 该示例修改 uspVendorAllInfo 过程。 将删除 EXECUTE AS CALLER 子句并且将过程的主体修改为只返回那些提供指定产品的供应商。 LEFT 和 CASE 函数自定义结果集的外观。

    Transact-SQL
    USE AdventureWorks2012;GOALTER PROCEDURE Purchasing.uspVendorAllInfo    @Product varchar(25) AS    SET NOCOUNT ON;    SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product name',     'Rating' = CASE v.CreditRating         WHEN 1 THEN 'Superior'        WHEN 2 THEN 'Excellent'        WHEN 3 THEN 'Above average'        WHEN 4 THEN 'Average'        WHEN 5 THEN 'Below average'        ELSE 'No rating'        END    , Availability = CASE v.ActiveFlag        WHEN 1 THEN 'Yes'        ELSE 'No'        END    FROM Purchasing.Vendor AS v     INNER JOIN Purchasing.ProductVendor AS pv      ON v.BusinessEntityID = pv.BusinessEntityID     INNER JOIN Production.Product AS p       ON pv.ProductID = p.ProductID     WHERE p.Name LIKE @Product    ORDER BY v.Name ASC;GO
  7. 若要将修改信息保存到过程定义中,请在“查询”菜单上单击“执行”

  8. 若要将更新的过程定义另存为 Transact-SQL 脚本,请在“文件”菜单上单击“另存为”。 接受该文件名或将其替换为新的名称,再单击“保存”

  9. 若要运行修改的存储过程,请执行以下示例。

    Transact-SQL
    EXEC Purchasing.uspVendorAllInfo N'LL Crankarm';GO

[返回页首]