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         //移除資料指標參考

  • 相关阅读:
    Linux 基础 —— RPM
    mysql主从复制
    mysql.user表中Host为%的含义
    MySQL + Atlas --- 部署读写分离(参考02)
    MySQL读写分离技术(参考)
    蚁群算法
    java 回调
    java 接口sort comparable
    matlab 求解高阶方程
    matlab 求解常微分方程
  • 原文地址:https://www.cnblogs.com/accumulater/p/6078440.html
Copyright © 2011-2022 走看看