一个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函数排序,就可以依次取出。

SQL Server循环插入的更多相关文章

  1. SQL Server循环插入数据

    --循环执行插入10000条数据declare @ID intdeclare @eigyousyocode nvarchar(16)declare @datet datetimedeclare @pl ...

  2. SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批 ...

  3. SQL Server 批量插入数据的两种方法(转)

    此文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/18/4360030.aspx 在SQL Server 中插入一条 ...

  4. 转:SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...

  5. ASP.NET MVC与Sql Server交互, 插入数据

    在"ASP.NET MVC与Sql Server建立连接"中,与Sql Server建立了连接.本篇实践向Sql Server中插入数据. 在数据库帮助类中增加插入数据的方法. p ...

  6. Sql Server海量数据插入

    目录 1.前言 2.BULK INSERT 3.简单示例 前言 由于昨天接到一个客户反馈导出数据卡死的问题,于是决定今天模拟一下千万级的数据,然后傻傻的等待插入数据了半天...... 对于海量数据,上 ...

  7. SQL Server 批量插入数据方案 SqlBulkCopy 的简单封装,让批量插入更方便

    一.Sql Server插入方案介绍 关于 SqlServer 批量插入的方式,有三种比较常用的插入方式,Insert.BatchInsert.SqlBulkCopy,下面我们对比以下三种方案的速度 ...

  8. sql server不要插入大数据,开销太大

    sql server或者说关系型数据库中不要做一个字段存储大数据量的设计,比如要插入3000w条数据,然后每条数据中有一个文章字段,这个字段每条大概都需要存储几m的数据,那么算下来这个表就得有几百个G ...

  9. SQL Server返回插入数据的ID和受影响的行数

    首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: insert into Student(S ...

随机推荐

  1. 新树莓派系统安装ROS记录

    树莓派系统更新了,作为版本控的我怎么能忍住不更新系统,为了提高系统的速度,买了张170M的告诉sd卡,我要说的是,这个高速SD卡的钱花的最值得了,千万不要觉得树莓派都买了4,还要什么高速SD卡(自行车 ...

  2. mysql —日志记录

    日志 事务日志: transaction log 中继日志: reley log错误日志: error log 通用日志: general log 慢查询日志: slow query log 二进制日 ...

  3. python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归 列表推导式 字典推导式

    闭包 1, 闭包是嵌套在函数中的 2, 闭包是内层函数对外层函数的变量(非全局变量)的引用(改变) 3,闭包需要将其作为一个对象返回,而且必须逐层返回,直至最外层函数的返回值 闭包例子: def a1 ...

  4. Oracle 的 oracle 数据库分类

    一.数据库分类 1.小型数据库:access.foxbase 2.中型数据库:informix.sql server.mysql 3.大型数据库:sybase.db2.oracle 二.项目中如何合理 ...

  5. 【工具】sqlmap 中文手册 使用教程

    日期:2019-07-28 09:27:27 更新: 作者:Bay0net 介绍:自己翻译了一下,做个备忘. 0x01. 基本信息 官网 sqlmap: automatic SQL injection ...

  6. 【402】Twitter Data Collection

    参考:Python判断文件是否存在的三种方法 参考:在python文件中执行另一个python文件 参考:How can I make a time delay in Python? 参考:Twili ...

  7. PostgreSql 使用自定义序列(Sequence)向表插入数据

    最近公司使用到了PostgreSql,哈哈,这个SQL之前基本上没有用过,既然公司使用到了,那就学习一下吧,记一篇小笔记: 什么是PostgreSql:https://www.postgresql.o ...

  8. mysql大数据量下优化

    1 优化sql和索引2 增加缓存如:redis3 主从复制或主主复制,读写分离4 利用mysql自带分区表5 先做垂直拆分,将一个大系统分为多个小系统,也就是分布式6 水平切分,要选择一个合理的sha ...

  9. Salt之CentOS7.5使用RPM包安装MySQL5.7.22

    手动安装参考CentOS7.5使用RPM包安装MySQL5.7.22 目录结构为 install.sls文件 #按顺序分别安装commin libs client server #避免冲突安装comm ...

  10. SNIPER-MXNet中出现ValueError: could not broadcast input array from shape (XXX,5) into shape (100,5)

    这是关于标签数量的问题,搜索"100," ,其中与读标签框有关,或者与标签匹配有关的,全部改到大于“图片中最多有的标签数量”即可.