博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL SERVER 批量生成编号
阅读量:6599 次
发布时间:2019-06-24

本文共 888 字,大约阅读时间需要 2 分钟。

开始:

  在testing中,为了模拟orders,有个要求给数据库dba,如何通过后台数据库脚本快速批量生成orders。

 

分析

  站在数据库角度,批量生成orders,也就是批量生成表中的行数据。

  sql中,通过cross join 可以把两个table (如 A ,B )组合,形成一个笛卡尔积,如图1

  

            图1

  如果,对图1的组合结果,进行一次迭代组合,那么就可以得到一个16行的结果,如图2:

  

          图2

    在sql sever 中,通过下面的sql语句分析需要A, B表组合,迭代多少次可以能生成上百万行的记录,

  

use tempdbgodeclare @x bigint =2declare @i int=1while(1=1)begin        set @x=square(@x)    if @@ERROR<>0 break;    print rtrim(@i)+' : '+rtrim(sqrt(@x))+' x '+rtrim(sqrt(@x))+' = '+rtrim(@x);        set @i+=1;end

  从这可以看到A,B表组合,需要迭代5次就可以生成上百万行数据。

实现:

SQL SERVER 代码:

;With a0 As(Select id=1 Union All Select id=1),a1 As(Select a.id From a0 a,a0 b),a2 As(Select a.id From a1 a,a1 b),a3 As(Select a.id From a2 a,a2 b),a4 As(Select a.id From a3 a,a3 b),t  As(Select id=Row_number() Over(Order By a.id) From a4 a,a4 b)select top 1000000 id from t

到这里,批量生成数据行,已能实现。根据实际的需要可以附加其他的条件或数据,即可满足开头部分的需求。

 

转载地址:http://wplio.baihongyu.com/

你可能感兴趣的文章
通过图片优化,我将网站大小减少了62%
查看>>
Gitter:高颜值GitHub小程序客户端诞生记
查看>>
.NET Framework 4.8预览
查看>>
NPM发布新的安全功能
查看>>
Java性能调优、LinkedIn容器部署、阿里移动性能调优——首届APMCon精彩演讲先睹为快...
查看>>
PHP Session可能会引起并发问题
查看>>
《The Corporate Startup》作者访谈
查看>>
Swift 4正式发布,新功能概览
查看>>
基于容器服务的持续集成与云端交付(四)- 多种发布方式
查看>>
B端大数据应用的架构实践与思考
查看>>
天猫双十一这十年:从“人肉云计算”到“脉冲计算”经历了什么
查看>>
《Elasticsearch in Action》书评与作者访谈
查看>>
解读 2018之Go语言篇(上):为什么Go语言越来越热?
查看>>
腾讯云发布CDN 2.0,四大优势加速移动化进程
查看>>
《Agendashift》的作者访谈录(一)
查看>>
可执行镜像——开发环境的Docker化之路
查看>>
Instagram如何跨大洋拆分有状态服务
查看>>
微软推出Azure区块链开发套件,重点解决两大难题
查看>>
ARKit 1.5现在支持垂直平面检测和2D图像识别
查看>>
Jessica Kerr:高绩效团队简史
查看>>