将表数据生成SQL脚本的存储过程示例:

CREATE PROCEDURE dbo.UspOutputData   @tablename sysname

AS

declare @column varchar(1000)

declare @columndata varchar(1000)

declare @sql varchar(4000)

declare @xtype tinyint

declare @name sysname

declare @objectId int

declare @objectname sysname

declare @ident int

set nocount on

set @objectId=object_id(@tablename)

if @objectId is null -- 判断对象是否存在

begin

print 'The object not exists'

return

end

set @objectname=rtrim(object_name(@objectId))

if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密

begin

print 'object not in current database'

return

end

  

if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table

begin

print 'The object is not table'

return

end

  

select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80

  

if @ident is not null

print 'SET IDENTITY_INSERT '+@TableName+' ON'

  

declare syscolumns_cursor cursor

  

for select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid

  

open syscolumns_cursor

set @column=''

set @columndata=''

fetch next from syscolumns_cursor into @name,@xtype

while @@fetch_status < >-1

begin

if @@fetch_status < >-2

begin

if @xtype not in(189,34,35,99,98) --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理  

begin

set @column=@column+case when len(@column)=0 then'' else ','end+@name

set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','

end  

+case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char

when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar

when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime

when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime

when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier

else @name end  

end  

end  

fetch next from syscolumns_cursor into @name,@xtype  

end  

close syscolumns_cursor

deallocate syscolumns_cursor

set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename  

print '--'+@sql

exec(@sql)  

if @ident is not null

print 'SET IDENTITY_INSERT '+@TableName+' OFF'

GO

exec UspOutputData 你的表名

工具介绍:

1 InstallShield自带一个把SQL数据库的结构和数据导出为脚本的功能,很好用,如果刚好要做打包,建议用这个,因为安装文件比较大,如果不是做打包不建议用。

2 SqlInsert是一个专门导出数据为脚本的小工具,速度没IS的快,但是一样好用。

转载于:https://www.cnblogs.com/linpengfeixgu/articles/1563841.html

将表数据生成SQL脚本的存储过程和工具相关推荐

  1. 将表数据生成Insert脚本

    -- ============================================= -- Author: 明永成 -- Create date: 2016-01-03 -- Descri ...

  2. Java代码导出数据库百万数据生成sql脚本

    Java代码查询数据生成update更新sql 一.查询数据库数据 /*** 导入查询数据的接口**/@Autowiredprivate DataMapper dataMapper;/*** 编写单元 ...

  3. SqlServer 导出指定表数据 生成Insert脚本

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载于:https://www.cnblogs.com/firstdream/p/7285157.html

  4. 超简单,一行代码解决:如何快速将Excel表格数据,映射到Java中的ListVO对象,然后转存数据库,生成SQL脚本

    前言-真的很快速,之前用的是Apache下的Jar包,用起来太麻烦了 <dependency><groupId>org.apache.poi</groupId>&l ...

  5. PowerDesigner生成SQL脚本时表名、字段名带引号问题及解决方法

    使用PowerDesigner生成数据库脚本时,表名一般会带引号. 如下: 加引号是PL/SQL的规范,数据库会严格按照""中的名称建表,如果没有"",会按照O ...

  6. SQL Server将数据导出SQL脚本的方法 转

    SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有inser ...

  7. datagrip 导出 Oracle 数据库结构和数据到sql脚本中

    文章目录 1. 问题描述 2. 数据库右键 -- 仅对 MySQL 和 PostgreSQL 有效 1. MySQL 备份 -- mysqldump 2. PostgreSQL 备份 -- pgdum ...

  8. excel数据生成sql insert语句

    excel数据生成sql insert语句 excel表格中有A.B.C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age . 在你的excel表格中增加一列,利用ex ...

  9. Oracle和sql server中复制表结构和表数据的sql语句

    在Oracle和sql server中,如何从一个已知的旧表,来复制新生成一个新的表,如果要复制旧表结构和表数据,对应的sql语句该如何写呢?刚好阿堂这两天用到了,就顺便把它收集汇总一下,供朋友们参考 ...

最新文章

  1. Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
  2. nll_loss 和 cross_entropy
  3. 使用AppFabric 承载WCF和WF服务-安装和使用
  4. hbase scala 实例_scala操作HBase2.0
  5. 2022年计算机二级Java语言程序设计复习题及答案
  6. 计算机二级修改并应用基本简历模板,如何通过Office模板轻松快捷创建简历
  7. vb 远程连接 SQLserver数据库的连接语句
  8. 数据挖掘基础知识点总结
  9. Keil 5(C51, MDK) 官方下载方法
  10. 数据挖掘实例1:亲和性分析示例(代码、注释、运行结果)
  11. HDMI线、DP线、DVI线、VGA线
  12. 淘宝店铺如何装修呢?
  13. java 银联支付_java服务器端移动银联支付的流程
  14. 什么是显示器支架,显示器支架有啥优势
  15. 8c SQL手册 六
  16. 句子很美,看得叫人掉泪
  17. 毫秒转化成几天几个小时几分几秒
  18. linux 7.0安装网卡驱动,安装或更新CentOS6.7平台的网卡驱动程序
  19. RTX 4090Ti显卡性能怎么样? RTX 4090Ti功耗
  20. WorldWind源码剖析系列:大气层散射球类AtmosphericScatteringSphere

热门文章

  1. 增量式编码器定时器配置和速度计算的处理方法
  2. Tinker 热修复框架模拟使用
  3. TinyMCE下载及使用
  4. 利用BP神经网络预测水道浅滩演变
  5. 数据挖掘算法之关联规则挖掘(一)apriori算法
  6. FormView用法
  7. [置顶] 有关ListIterator接口的add与remove方法探究
  8. 浅谈equals和hashcode
  9. Android File数据存储
  10. 学学Nhibernate