• SQL CURSOR


    SET NOCOUNT ON;
    
    DECLARE @vendor_id int, @vendor_name nvarchar(50),
        @message varchar(80), @product nvarchar(50);
    
    PRINT '-------- Vendor Products Report --------';
    
    DECLARE vendor_cursor CURSOR FOR 
    SELECT VendorID, Name
    FROM Purchasing.Vendor
    WHERE PreferredVendorStatus = 1
    ORDER BY VendorID;
    
    OPEN vendor_cursor
    
    FETCH NEXT FROM vendor_cursor 
    INTO @vendor_id, @vendor_name
    
    WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT ' '
        SELECT @message = '----- Products From Vendor: ' + 
            @vendor_name
    
        PRINT @message
    
        -- Declare an inner cursor based   
        -- on vendor_id from the outer cursor.
    
        DECLARE product_cursor CURSOR FOR 
        SELECT v.Name
        FROM Purchasing.ProductVendor pv, Production.Product v
        WHERE pv.ProductID = v.ProductID AND
        pv.VendorID = @vendor_id  -- Variable value from the outer cursor
    
        OPEN product_cursor
        FETCH NEXT FROM product_cursor INTO @product
    
        IF @@FETCH_STATUS <> 0 
            PRINT '         <<None>>'     
    
        WHILE @@FETCH_STATUS = 0
        BEGIN
    
            SELECT @message = '         ' + @product
            PRINT @message
            FETCH NEXT FROM product_cursor INTO @product
            END
    
        CLOSE product_cursor
        DEALLOCATE product_cursor
            -- Get the next vendor.
        FETCH NEXT FROM vendor_cursor 
        INTO @vendor_id, @vendor_name
    END 
    CLOSE vendor_cursor;
    DEALLOCATE vendor_cursor;
  • 相关阅读:
    银行卡和手机号占位符
    防京东进度尺的金额
    圆的进度条
    HMTL5滑动块研究
    自动生成验证码
    HTML5语义化
    (转)C++中使用C代码
    (转)四旋翼飞行器基本知识
    如何将.jpg图片 转换成.eps 格式图片
    HDOJ 1196 Lowest Bit
  • 原文地址:https://www.cnblogs.com/RR-ghost/p/5124215.html
Copyright © 2020-2023  润新知