zoukankan      html  css  js  c++  java
  • SQL SERVER 存储过程示例

    USE TEST_DEV;
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:
    -- Create date:
    -- Description:存储过程示例
    -- =============================================
    CREATE PROCEDURE PROC_DEMON
        @IN_PLANT VARCHAR(20),            ------- 输入参数 --------
        @IN_ASSEMBLY VARCHAR(20),
        @IN_SUPPLIER VARCHAR(20),
        @IN_DOCK VARCHAR(20),
        @IN_PARTS VARCHAR(20),
        @IN_PART_NUM INT,
        @OUTPUT INT OUTPUT                ------- 输出参数 --------
    AS
    BEGIN
    
        ------- 创建变量 --------
        DECLARE @PLANT VARCHAR(20);
        DECLARE @ASSEMBLY_LINE VARCHAR(20);
        DECLARE @SUPPLIER_NUM VARCHAR(20);
        DECLARE @DOCK VARCHAR(20);
        DECLARE @BOX_PARTS VARCHAR(20);
        DECLARE @PART_NUM INT;
        
        -------- 创建临时表 --------
        CREATE TABLE #TEMP([PLANT] VARCHAR(20),[ASSEMBLY_LINE] VARCHAR(20),[SUPPLIER_NUM] VARCHAR(20),[DOCK] VARCHAR(20),[BOX_PARTS] VARCHAR(20),[PART_NUM] INT)
        -------- 插入数据 --------
        INSERT #TEMP(PLANT,ASSEMBLY_LINE,SUPPLIER_NUM,DOCK,BOX_PARTS,PART_NUM) 
            VALUES (@IN_PLANT,@IN_ASSEMBLY,@IN_SUPPLIER,@DOCK,@IN_PARTS,@IN_PART_NUM);
        
        -------- 创建游标 --------
        DECLARE cur1 CURSOR FOR SELECT [PLANT],[ASSEMBLY_LINE],[SUPPLIER_NUM],[DOCK],[BOX_PARTS],[PART_NUM]
            FROM #TEMP
        WHERE PLANT IS NOT NULL
        GROUP BY [PLANT],[ASSEMBLY_LINE],[SUPPLIER_NUM],[DOCK],[BOX_PARTS],[PART_NUM];
        
        -------- 打开游标并填充数据 --------
        OPEN cur1
        FETCH NEXT FROM cur1 INTO @PLANT,@ASSEMBLY_LINE,@SUPPLIER_NUM,@DOCK,@BOX_PARTS,@PART_NUM
        PRINT @@FETCH_STATUS;
        WHILE (@@FETCH_STATUS = 0)
            BEGIN
                DECLARE @PARTNUM INT;
                SELECT @PARTNUM = ISNULL(PART_NUM,0) FROM #TEMP WHERE BOX_PARTS IS NOT NULL;
                IF @PARTNUM > 0 BEGIN
                    SET @OUTPUT = 1;
                END
                ELSE BEGIN
                    SET @OUTPUT = 0;
                END
                -------- 填充下一条数据 --------
                FETCH NEXT FROM cur1 INTO @PLANT,@ASSEMBLY_LINE,@SUPPLIER_NUM,@DOCK,@BOX_PARTS,@PART_NUM
                -------- 查看游标状态 --------
                PRINT @@FETCH_STATUS;
            END
        CLOSE cur1
        
        SELECT * FROM #TEMP;
        -------- 删除临时表 --------
        --DROP TABLE #TEMP;
        -------- 返回值 --------
        RETURN 1;
    END
    GO
    
    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    GO
    
    --DROP PROC dbo.PROC_DEMON
    
    -------- 带输入输出参数 ---------
    --DECLARE @RESULT AS INT;
    --EXEC dbo.PROCDEMON 
    --    @IN_PLANT = 'I033',
    --    @IN_ASSEMBLY = 'AF01',
    --    @IN_SUPPLIER = 'LOC',
    --    @IN_DOCK = 'LOC05',
    --    @IN_PARTS = 'ZONE1',
    --    @IN_PART_NUM = 0,
    --    @OUTPUT = @RESULT OUTPUT
    --SELECT @RESULT AS RESULT;
    
    -------- 带输入输出带返回值 ---------
    DECLARE @RESULT AS INT,
        @STATUS AS INT = 0;
    EXEC @STATUS = dbo.PROC_DEMON 
        @IN_PLANT = 'I033',
        @IN_ASSEMBLY = 'AF01',
        @IN_SUPPLIER = 'LOC',
        @IN_DOCK = 'LOC05',
        @IN_PARTS = 'ZONE1',
        @IN_PART_NUM = 11,
        @OUTPUT = @RESULT OUTPUT
    SELECT @RESULT AS RESULT,@STATUS AS STATUS;
  • 相关阅读:
    Redis哨兵(Sentinel)模式
    一个http请求就是一个线程吗,java的服务是每收到一个请求就新开一个线程来处理吗
    Redis 快速入门
    Redis 持久化之RDB和AOF
    Junit 入门使用教程 转自:http://www.cnblogs.com/ysocean/p/6889906.html
    Spring里PropertyPlaceholderConfigurer类的使用 转自:https://www.cnblogs.com/huqianliang/p/5673701.html
    Apache Commons Codec 编码/解码 (Base64/MD5/SHA1/SHA256等算法) 转自https://blog.csdn.net/hbtj_1216/article/details/52813741
    hive中时间日期函数的使用
    关于mat函数
    strip 和split
  • 原文地址:https://www.cnblogs.com/rinack/p/5777182.html
Copyright © 2011-2022 走看看