sqlserver高级特性

Posted helloworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver高级特性相关的知识,希望对你有一定的参考价值。

1. 游标

用途:在数据很多的时候,如果在java代码中进行循环之后再进行更新数据,会造成频繁的连接数据库,耗费性能,所以就可以使用到游标

作用:查询出来的集合直接在SQL中进行遍历在进行更新

     DECLARE allUnits CURSOR             //定义游标,For后面是集合,你为那个集合定义的游标。
        FOR (SELECT ID,CODE FROM tbl_unit where tbl_unit.PARENT_UNIT_CODE is null)
        OPEN allUnits                  //开启游标
        declare @ID int,@CODE nvarchar(50)      //定义游标中你要使用到的变量,需要注意的是:这里的变量个数必须和你上面集合中查询出来的个数一致
        FETCH NEXT FROM allUnits INTO @ID,@CODE   //开启第一行数据,导入参数
        WHILE @@FETCH_STATUS = 0            //判断游标的下一条数据是否存在: =0表示成功,= -1表示失败或不在结果集中,= -2 表示提取的行不存在。
        BEGIN                       //开始业务逻辑
            PRINT @CODE
            PRINT @ID
                UPDATE tbl_unit SET tbl_unit.parent_unit_code = (
                    ISNULL(
                        (SELECT CODE from tbl_unit WHERE tbl_unit.CODE = left(@CODE,6)+000  AND ID != @ID),
                        (SELECT CODE from tbl_unit WHERE tbl_unit.CODE = left(@CODE,3)+000000  AND ID != @ID)
                    )
                )    WHERE tbl_unit.ID = @ID
        FETCH NEXT FROM allUnits INTO @ID,@CODE    //导入下一行数据
        END                         //游标结束
        CLOSE allUnits                  //关闭游标
        DEALLOCATE allUnits               //释放游标

 

以上是关于sqlserver高级特性的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer索引的四个高级特性

缺少 SQL SERVER 2014 代码片段

传递额外的值 Passing Extra Values |在视图中生成输出URL | 高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼

JavaScript笔试题(js高级代码片段)

23.Flink-高级特性-新特性-Streaming Flie Sink介绍代码演示Flink-高级特性-新特性-FlinkSQL整合Hive添加依赖和jar包和配置

23.Flink-高级特性-新特性-Streaming Flie Sink介绍代码演示Flink-高级特性-新特性-FlinkSQL整合Hive添加依赖和jar包和配置