zoukankan      html  css  js  c++  java
  • sql server存儲過程語法

    -- 变量的声明,sql里面声明变量时必须在变量前加@符号
        DECLARE @I INT

    -- 变量的赋值,变量赋值时变量前必须加set
        SET @I = 30

    -- 声明多个变量
        DECLARE @s varchar(10),@a INT

    -- Sql 里if语句
        IF 条件 BEGIN
            执行语句
        END
        ELSE BEGIN
            执行语句
        END
                
        DECLARE @d INT
        set @d = 1

        IF @d = 1 BEGIN

        -- 打印
            PRINT '正确'
        END
        ELSE BEGIN
            PRINT '错误'
        END


    -- Sql 里的多条件选择语句.
        DECLARE @iRet INT, @PKDisp VARCHAR(20)
        SET @iRet = 1
        Select @iRet =
        CASE
            WHEN @PKDisp = '一' THEN 1
            WHEN @PKDisp = '二' THEN 2
            WHEN @PKDisp = '三' THEN 3
            WHEN @PKDisp = '四' THEN 4
            WHEN @PKDisp = '五' THEN 5
            ELSE 100
        END

    -- 循环语句
        WHILE 条件 BEGIN    
            执行语句
        END

        DECLARE @i INT
        SET @i = 1
        WHILE @i<1000000 BEGIN
            set @i=@i+1
        END
        -- 打印
        PRINT @i

    -- Select INTO 从一个查询的计算结果中创建一个新表。 数据并不返回给客户端,这一点和普通的
    -- Select 不同。 新表的字段具有和 Select 的输出字段相关联(相同)的名字和数据类型。
            
            select * into NewTable
                from Uname


    -- Insert INTO Select
            -- 表ABC必须存在
            -- 把表Uname里面的字段Username复制到表ABC
            Insert INTO ABC Select Username FROM Uname

    -- 创建临时表
            Create TABLE #temp(
                UID int identity(1, 1) PRIMARY KEY,
                UserName varchar(16),
                Pwd varchar(50),
                Age smallint,
                Sex varchar(6)
            )
            -- 打开临时表
            Select * from #temp


    -- 存储过程
            -- 要创建存储过程的数据库
            Use Test
            -- 判断要创建的存储过程名是否存在
                if Exists(Select name From sysobjects Where name='csp_AddInfo' And

    type='P')
                -- 删除存储过程
                Drop Procedure dbo.csp_AddInfo
            Go
                    
                    
            -- 创建存储过程
            Create Proc dbo.csp_AddInfo
            -- 存储过程参数
            @UserName varchar(16),
            @Pwd varchar(50),
            @Age smallint,
            @Sex varchar(6)
            AS
            -- 存储过程语句体
            insert into Uname (UserName,Pwd,Age,Sex)
                values (@UserName,@Pwd,@Age,@Sex)
            RETURN
            -- 执行
            GO
                    
            -- 执行存储过程
            EXEC csp_AddInfo 'Junn.A','123456',20,'男'

    有關游標的問題

            declare db cursor for       //聲明一個游標(db為其名稱)

            SELECT UNIT_NAME FROM UNIT WHERE LEFT(UNIT_CODE,2)=LEFT(@strTO,2)//記錄集

            open db                 //打開游標

                fetch next from db into @strUNIT_NAME //將第一個值放入一個參數中

            while @@fetch_status = 0 ---存在本筆值向下循環

    (0:順利執行;-1:失敗,或資料列超出結果集;-2:擷取的資料列已遺漏)

            BEGIN             ----開始循環

                            //個體操作

            End                ----結束循環

            Close db            ---關閉游標

    deallocate db         //移除資料指標參考

  • 相关阅读:
    array and ram
    char as int
    pointer of 2d array and address
    Install SAP HANA EXPRESS on Google Cloud Platform
    Ubuntu remount hard drive
    Compile OpenSSL with Visual Studio 2019
    Install Jupyter notebook and tensorflow on Ubuntu 18.04
    Build OpenCV text(OCR) module on windows with Visual Studio 2019
    Reinstall VirtualBox 6.0 on Ubuntu 18.04
    Pitfall in std::vector<cv::Mat>
  • 原文地址:https://www.cnblogs.com/accumulater/p/6078440.html
Copyright © 2011-2022 走看看