Sql Server存储过程

好久没用存储过程了,突然一用发现好多东西忘了,就写了两个。方便查阅。例子都非常简单,方便结构的查看,参数的使用。

 

SELECT  *
FROM    Production.Product;
--1 创建一个返回结果集的存储过程
DROP PROCEDURE dbo.PR_Product;
CREATE PROCEDURE PR_Product
AS 
    BEGIN 
        SELECT  *
        FROM    Production.Product;
    END; 
    
    --执行存储过程
    EXEC dbo.PR_Product;

--2 创建一个要求输入一个参数的存储过程
    CREATE PROCEDURE PR_SelectProduct @color VARCHAR(20)--定义一个输入参数
    AS 
        BEGIN
            SELECT  *
            FROM    Production.Product
            WHERE   Color = @color;--要求Color列与输入参数相同
        END;
        
        --执行存储过程
        EXEC dbo.PR_SelectProduct @color = Black -- varchar(20)

--3 创建一个要求输入两个参数的存储过程
        CREATE PROCEDURE PR_SelectProductTwoParameters
            @safetyStockLevel INT ,
            @recorderPoint INT
        AS 
            BEGIN
                SELECT  *
                FROM    Production.Product
                WHERE   SafetyStockLevel = @safetyStockLevel
                        AND ReorderPoint > @recorderPoint
            END;
            --执行存储过程
            EXEC dbo.PR_SelectProductTwoParameters @safetyStockLevel = 1000, -- int
                @recorderPoint = 100 -- int
            
            EXEC dbo.PR_SelectProductTwoParameters @safetyStockLevel = 800, -- int
                @recorderPoint = 100 -- int
            
--4 创建一个有返回值的存储过程
            CREATE PROCEDURE PR_GetProductID
                @makeFlag INT ,
                @color VARCHAR(10) ,
                @productID INT OUTPUT
            AS 
                BEGIN
                    SELECT  @productID = ProductID
                    FROM    Production.Product
                    WHERE   MakeFlag = @makeFlag
                            AND Color = @color
                END;
            
            --执行存储过程
                DECLARE @productID INT
                EXEC dbo.PR_GetProductID @makeFlag = 0, @color = Black, -- varchar(10)
                    @productID = @productID OUTPUT -- int--声明一个变量用来接收执行存储过程后的返回值
                SELECT  @productID AS ProductID;
--5 创建一个有默认输入参数的存储过程                               
                CREATE PROCEDURE PR_SelectProductName @name VARCHAR(10) = %
                AS 
                    BEGIN
                        SELECT  *
                        FROM    Production.Product
                        WHERE   Name LIKE @name;
                    END;
                    
                    --执行存储过程
                    EXEC dbo.PR_SelectProductName ;--默认参数
                    EXEC dbo.PR_SelectProductName @name = B% -- varchar(10) 手动输入参数

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。