自动生成Insert数据的SQL脚本
判断当表存在标识列的时候就要允许将显式值插入表的标识列中,设置:Set Identity_Insert TableName Off
判断数据类型如,varchar,char,datetime,nvarchar,nchar,uniqueidentifier时候,在Insert字段中就要增加双引号,否则就不加;
Use Test
Go
Declare
@Table1 nvarchar(128),
@Table2 nvarchar(128),
@Sql1 nvarchar(4000),
@Sql2 nvarchar(4000),
@SqlIdentityInsert nvarchar(512)
Set @Table1='DutyHistory' --源表
Set @Table2='Duty' --目标表
IF Object_id(@Table1,'U') Is Null
Return
If Isnull(@Table2,'')=''
Set @Table2=@Table1
Set @SqlIdentityInsert=''
If Exists(Select 1 From sys.columns Where Object_id=Object_id(@Table1,'U'))
Set @SqlIdentityInsert='Select ''Set Identity_Insert '+@Table2+' On '''
Select
@Sql1=Isnull(@Sql1+',',' Insert Into '+@Table2+' (')+Quotename(name),
@Sql2=Isnull(@Sql2+'+'',''+','Select @Sql1+'' Select ''')+'+Case When '+Quotename(name)+' Is null Then ''null'' Else '+
Case When user_type_id In(175,61,239,231,58,98,36,167,241) Then '''''''''+Rtrim('+Quotename(name)+')+''''''''' Else 'Rtrim('+Quotename(name)+')' End +' End'
From sys.columns
Where Object_id=Object_id(@Table1,'U')
Set @Sql1=@Sql1+')'
Set @Sql2= 'Select Convert(nvarchar(max),''If Object_id('''''+@Table2+''''',''''U'''') Is Null Return;'') As SqlInsert Union All '+
@SqlIdentityInsert+' Union All '+
@Sql2+' From '+Quotename(@Table1)+Case @SqlIdentityInsert When '' Then '' Else ' Union All ' End+
Replace(@SqlIdentityInsert,' On ',' Off')
Exec sp_executesql @Sql2,N'@Sql1 nvarchar(4000)',@Sql1
Result:
SqlInsert
---------------------------------------------------------
If Object_id('Duty','U') Is Null Return;
Set Identity_Insert Duty On
Insert Into Duty ([id],[Name],[WorkDate],[WorkHours]) Select 1,'Robert','01 1 2008 12:00AM',3.4
Insert Into Duty ([id],[Name],[WorkDate],[WorkHours]) Select 2,'Robert','01 2 2008 12:00AM',3.4
Insert Into Duty ([id],[Name],[WorkDate],[WorkHours]) Select 3,'Robert','01 3 2008 12:00AM',3.4
... ...
Insert Into Duty ([id],[Name],[WorkDate],[WorkHours]) Select 58,'Robert','02 27 2008 12:00AM',4.5
Insert Into Duty ([id],[Name],[WorkDate],[WorkHours]) Select 59,'Robert','02 28 2008 12:00AM',4.5
Insert Into Duty ([id],[Name],[WorkDate],[WorkHours]) Select 60,'Robert','02 29 2008 12:00AM',4.5
Set Identity_Insert Duty Off
转载于:https://www.cnblogs.com/wei9931/archive/2008/07/10/1240093.html
自动生成Insert数据的SQL脚本相关推荐
- PowerDesigner生成数据库建表sql脚本
PowerDesigner生成数据库建表sql脚本 一.生成sql server 2000或oracle建表sql脚本 1.新建一个物理模型,通过database菜单下的change current ...
- excel怎样修改表格时间和计算机一制,Excel表格中如何自动生成记录数据的日期和时间...
前几天有人问我:Excel表格在录入信息时如何在日期单元格自动生成日期时间? 在录入表格的时候,我们经常需要录入时间,比要填写出入库时间,为了减少录入的工作量,可以把日期设置为自动生成. 例如我们在B ...
- 电脑表格日期怎么修改原有日期_如何在Excel表中自动生成记录数据的日期和时间...
几天前有人问我: 在Excel表格中输入信息时,如何在日期单元格中自动生成日期和时间? 输入表格时,我们经常需要输入时间,而不是填写存储时间,为了减少输入工作量,您可以将日期设置为自动生成. 例如,当 ...
- 画【Python折线图】的一百个学习报告(三、自动生成单一数据折线图)
画[Python折线图]的一百个学习报告(三.自动生成单一数据折线图) 目录 画[Python折线图]的一百个学习报告(三.自动生成单一数据折线图) 前言 学习环境 探究目标 分析过程 实践过程 成果 ...
- swagger mock文档服务器,通过 Swagger 定义自动生成 Mock 数据
我最近的在做的项目是一个前后端分离的项目,前后端由不同的团队分别开发,并且前端的进度经常领先后端.这就意味着,当前端在开发一个新功能时,API 可能还没有准备好.不过,我们会先和后端先商议好 API ...
- SQL Server将数据导出SQL脚本的方法 转
SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有inser ...
- datagrip 导出 Oracle 数据库结构和数据到sql脚本中
文章目录 1. 问题描述 2. 数据库右键 -- 仅对 MySQL 和 PostgreSQL 有效 1. MySQL 备份 -- mysqldump 2. PostgreSQL 备份 -- pgdum ...
- MySQL数据库自动生成大批量数据
在mysql学习和练习中,特别是学习索引及性能调优时,需要生成一张或几张大表来进行测试,能给初学者更直观的学习和更深刻的印象 一.生成脚本 以下使用存储过程批量生成包含用户名,手机号,出生日期等字段大 ...
- 自动生成小工具(二):根据建表sql自动生成增删改查sql语句文件
Mybatis自动生成插件虽然功能强大,但是也略显笨重.我自己开发了一个自动生成的小工具,更加简单,更加轻量级. 一共只有几百行代码,想改的话,直接修改即可.根据自己的实际情况,可以进行灵活的二次开发 ...
最新文章
- iOS架构篇-4 架构模式MVVM
- mysql的远程链接工具_Navicat远程链接mysql-8数据库具体操作
- AngularJS 表单数据验证及错误信息提示
- SAP CRM One Order CLOSING date change debug
- 文件夹查找文件(一个文件夹文件查找函数 Delphi)
- 高数学习笔记:计算方向导数
- [paper reading] YOLO v1
- PHP面向对象知识点
- 《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.2 数字图像处理与识别...
- SpringMVC学习(三)RestFul风格
- IaaS基础架构云 —— 云网络
- Simulink嵌入式自动代码DSP F28335(4)——SVPWM
- PC版微信/QQ防撤回工具(支持最新版)
- 天翼云搭建socks5和搭建http
- 分享好用的日常记账软件
- ‘git clone‘ failed with status 128
- linux 内核启动Initramfs与initrd 及其挂载
- 用PS制作简单婚纱海报
- HTAP 能够取代 OLAP 吗?
- 《半小时漫画经济学》读书摘记
热门文章
- myeclipse10.7激活
- 深度学习笔记三:Softmax Regression
- HTML标签meta在seo中的作用
- (转载)安全漏洞概念及分类
- Leetcode 682. 棒球比赛 解题思路及C++实现
- 数据结构源码笔记(C语言):Josephus问题之顺序表
- tensorflow sobel算子实现
- Jsoup介绍||​​​​​​​jsoup解析url || Jsoup解析字符串||​​​​​​​Jsoup解析文件
- 帆软finereport实现动态切换分组和列表模式
- c# 学习笔记 (1) 类型转换