`

T_SQL While循环

 
阅读更多

    很久没有写过SQL了,今天写了一个循环数据更新,以备以后查看:

 

DECLARE @Count int ,@SortIndex int,@strSQL varchar(500)
SET @Count=(SELECT COUNT(*) FROM SCO_BehindMenu WHERE ParentId='f320a77e-096b-4929-82df-86cc41ffc3dc')
SET @SortIndex=0
WHILE(@SortIndex<@Count)
BEGIN
	SET @strSQL='UPDATE SCO_BehindMenu SET SortIndex='+STR(@SortIndex+1)+' WHERE MenuId=('
	SET @strSQL=@strSQL+'SELECT TOP 1 MenuId FROM SCO_BehindMenu WHERE ParentId=''f320a77e-096b-4929-82df-86cc41ffc3dc'' AND MenuId NOT IN (SELECT TOP '+STR(@SortIndex)+' MenuId FROM SCO_BehindMenu WHERE ParentId=''f320a77e-096b-4929-82df-86cc41ffc3dc'' ORDER BY MenuId) ORDER BY MenuId)'
	SET @SortIndex=@SortIndex+1
	print @strSQL
	EXEC(@strSQL)
END

  

分享到:
评论

相关推荐

    原创 T_SQL 动态SQL 结合 游标 多表查询

    WHILE @@FETCH_STATUS = 0 BEGIN declare @strtemp varchar(50) -- Concatenate and display the current values in the variables. --PRINT ' when ' + cast(@bmid as varchar(20)) + ' then ' + @bmmc select ...

    关于游标使用sql

    简单循环处理 DECLARE @id INT, @value VARCHAR(10); BEGIN -- 定义游标. DECLARE c_test_main CURSOR FAST_FORWARD FOR SELECT id, value FROM test_main; -- 打开游标. OPEN c_test_main; --...

    SQL Server中的数据复制到的Access中的函数

    初步的想法是用两个recordset,一个从SQL取数据,一个往Access里面插入数据 因为表的字段比较多,所以只好用一个循环 代码如下:while (!m_pRecordset_sql-&gt;adoEOF) { m_pRecordset_access-&gt;AddNew(); for (int i = 0...

    经典SQL语句大全

    set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid&gt;-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中...

    sqlserver自定义函数

    --这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。 return substring(@str,@start,@location-@start) END select ...

    PL/SQL 基础.doc

    2) WHILE 循环 WHILE boolean_expr(条件) LOOP /* boolean_expr 循环条件*/ ... (循环体) END LOOP; 3) FOR循环 FOR loop_counter IN [REVERSE] low_bound..high_bound LOOP /* 范围中间用2个点表示 从 ...

    黄淮学院2010学年第二学期SQL server期末考试

    在WHILE循环语句中,如果循环体语句条数多于一条,必须使用_________。 A、 BEGIN……END B、 CASE……END C、 IF…………THEN D、 GOTO SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是____...

    SQLServer2000高级编程技术(part02)-想学存储过程 SQL编程 务必要看

    10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_...

    SQLServer2000高级编程技术-已添加书签,想学存储过程、SQL编程务必要看,分析非常透彻

    10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_...

    精通sql结构化查询语句

    1.5 SQL开发环境 1.5.1 SQL环境介绍 1.5.2 SQL的层次结构 1.5.3 SQL环境中的对象 1.5.4 SQL环境中的程序系统 1.6 SQL语句基础 1.6.1 SQL常量 1.6.2 SQL表达式 1.6.3 SQL数据类型 1.6.4 注释符 1.6.5 批处理 1.6.6 ...

    经典全面的SQL语句大全

    select * from (SELECT a,b,c FROM a) T where t.a &gt; 1;  8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b...

    SQL Server 2008编程入门经典(第3版)

    11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过...

    SQL.Server.2008编程入门经典(第3版).part1.rar

    11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过...

    sql经典语句一部分

    set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid&gt;-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中...

    数据库操作语句大全(sql)

    set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid&gt;-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用...

    MySQL实现创建存储过程并循环添加记录的方法

    本文实例讲述了MySQL实现创建存储过程并循环添加记录的方法。分享给大家供大家参考,具体如下: 先创建,然后调用: -- 创建存储过程 DELIMITER;// create procedure myproc() begin declare num int; set num=1; ...

    不使用游标完成循环功能(下)

    游标造成的问题有很多,比如延长锁问题,无法缓存执行计划以及加大内存与CPU开销问题等。许多T-SQL程序员和DBA都不知道如何不使用游标而成功记录循环。在本文中,我将分享一些不使用游标而实现循环功能的方法。

    mysql 循环批量插入的实例代码详解

    测试时没有数据,便安装了一个MySql,建了张表,在建了个while循环批量插入10W条测试数据的时候,执行时间之长无法忍受,便查资料找批量插入优化方法,这里做个笔记。 数据结构 寻思着分页时标准列分主键列、索引列...

Global site tag (gtag.js) - Google Analytics