SQL 存储过程

存储过程的优点:减少了服务器/客户端网络流量

                                更强的安全性

                                代码的重复使用

                                更容易维护、

                                改进的性能

创建存储过程:   

USE AdventureWorks2012;
GO
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 
    @LastName nvarchar(50), 
    @FirstName nvarchar(50) 
AS 

    SET NOCOUNT ON;
    SELECT FirstName, LastName, Department
    FROM HumanResources.vEmployeeDepartmentHistory
    WHERE FirstName = @FirstName AND LastName = @LastName
    AND EndDate IS NULL;
GO

调用存储过程:

EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';
-- Or
EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';
GO
-- Or
EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';
GO

修改存储过程:

ALTER PROCEDURE Purchasing.uspVendorAllInfo
    @Product varchar(25) 
AS
   SQL语句

删除存储过程:

Drop PROCEDURE 存储过程名
GO

授予对存储过程的权限

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

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

      3. 展开“存储过程”,右键单击要针对其授予权限的过程,再单击“属性”

      4. “存储过程属性”中,选择“权限”页。

      5. 若要为用户、数据库角色或应用程序角色授予权限,请单击“搜索”

      6. “选择用户或角色”中,单击“对象类型”以添加或清除所需的用户和角色。

      7. 单击”浏览“以显示用户或角色列表。 选择应对其授予权限的用户或角色。

      8. “显式权限”网格中,选择要为指定的用户或角色授予的权限。

授予名为 A  的应用程序角色对存储过程 B  EXECUTE 权限。

GRANT EXECUTE ON OBJECT:: B
    TO A;
原文地址:https://www.cnblogs.com/shuaichao/p/3239253.html