zoukankan      html  css  js  c++  java
  • SQL Server循环插入

    一个SQL循环插入的代码,运行正常:

     BEGIN
      DECLARE @idx AS INT;
      DECLARE @NodeName nvarchar(255);
      DECLARE @OtherName nvarchar(255);
       DECLARE @ParentId INT;
       DECLARE @OrderId Int;
       DECLARE @Url nvarchar(255);
       DECLARE @NodeClass nvarchar(255);
      
       DECLARE @myTable TABLE (NodeName nvarchar(255),OtherName nvarchar(255), ParentId INT,OrderId Int,Url nvarchar(255),NodeClass nvarchar(255));
    INSERT INTO @myTable 
         select NodeName,OtherName,ParentId,OrderId,Url,NodeClass from SysMenu where OtherName = '超级管理员';
      
     declare @count int select @count=count(*) from @myTable
    
      set @idx=1;
      WHILE @idx <= @count
       BEGIN
         select 
         @NodeName=NodeName, 
         @OtherName=OtherName,
         @ParentId=ParentId,
         @OrderId=OrderId,
         @Url=Url,
         @NodeClass=NodeClass
         from (select row_number() over( order by OrderId)num,* from @myTable) a where num=@idx;
       INSERT INTO SysMenu (NodeName,OtherName,ParentId,OrderId,Url,NodeClass)
        values(@NodeName,'销售设计渠道',@ParentId,-1,@Url,@NodeClass);
         SET @idx = @idx + 1;
       END 
      
      End

    总体思路:

     1、建立一个临时表MyTable,将需要循环插入的数据插入到里面。

     2、声明一个变量,记录数据总量:declare @count int select @count=count(*) from @myTable 。

     3、用Wihle循环插入。

    问题:如何取临时表MyTable中的每一条数据?

    解:参照代码,使用rownumber函数排序,就可以依次取出。

  • 相关阅读:
    C# String.Format格式说明
    jQuery.json.js
    禁止别人使用"另存为"保存你的网页
    组合问题的递归算法
    jQuery,contents()
    C#string,StringBuilder和Regex类的讲解
    jQuery性能优化指南
    加密算法的C#实现
    m,n组合算法
    jQuery插件—获取URL参数
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/4350553.html
Copyright © 2011-2022 走看看