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#中怎么设置comboBox1为只读,即不可在里面进行编辑?
    笔记
    Head First ObjectOriented Analysis & Design 读书 概记
    看到这篇东西 ,要收藏 呵呵
    HELLO OPENGL
    调试opengl程序出错
    HeadFirst C# 读书笔记 0426
    css布局容易范的一些错误
    百度新年贪吃蛇效果
    css3教程:boxsizing属性说明
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/4350553.html
Copyright © 2011-2022 走看看