将表数据生成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脚本的存储过程和工具相关推荐
- 将表数据生成Insert脚本
-- ============================================= -- Author: 明永成 -- Create date: 2016-01-03 -- Descri ...
- Java代码导出数据库百万数据生成sql脚本
Java代码查询数据生成update更新sql 一.查询数据库数据 /*** 导入查询数据的接口**/@Autowiredprivate DataMapper dataMapper;/*** 编写单元 ...
- SqlServer 导出指定表数据 生成Insert脚本
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载于:https://www.cnblogs.com/firstdream/p/7285157.html
- 超简单,一行代码解决:如何快速将Excel表格数据,映射到Java中的ListVO对象,然后转存数据库,生成SQL脚本
前言-真的很快速,之前用的是Apache下的Jar包,用起来太麻烦了 <dependency><groupId>org.apache.poi</groupId>&l ...
- PowerDesigner生成SQL脚本时表名、字段名带引号问题及解决方法
使用PowerDesigner生成数据库脚本时,表名一般会带引号. 如下: 加引号是PL/SQL的规范,数据库会严格按照""中的名称建表,如果没有"",会按照O ...
- 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 ...
- excel数据生成sql insert语句
excel数据生成sql insert语句 excel表格中有A.B.C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age . 在你的excel表格中增加一列,利用ex ...
- Oracle和sql server中复制表结构和表数据的sql语句
在Oracle和sql server中,如何从一个已知的旧表,来复制新生成一个新的表,如果要复制旧表结构和表数据,对应的sql语句该如何写呢?刚好阿堂这两天用到了,就顺便把它收集汇总一下,供朋友们参考 ...
最新文章
- Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
- nll_loss 和 cross_entropy
- 使用AppFabric 承载WCF和WF服务-安装和使用
- hbase scala 实例_scala操作HBase2.0
- 2022年计算机二级Java语言程序设计复习题及答案
- 计算机二级修改并应用基本简历模板,如何通过Office模板轻松快捷创建简历
- vb 远程连接 SQLserver数据库的连接语句
- 数据挖掘基础知识点总结
- Keil 5(C51, MDK) 官方下载方法
- 数据挖掘实例1:亲和性分析示例(代码、注释、运行结果)
- HDMI线、DP线、DVI线、VGA线
- 淘宝店铺如何装修呢?
- java 银联支付_java服务器端移动银联支付的流程
- 什么是显示器支架,显示器支架有啥优势
- 8c SQL手册 六
- 句子很美,看得叫人掉泪
- 毫秒转化成几天几个小时几分几秒
- linux 7.0安装网卡驱动,安装或更新CentOS6.7平台的网卡驱动程序
- RTX 4090Ti显卡性能怎么样? RTX 4090Ti功耗
- WorldWind源码剖析系列:大气层散射球类AtmosphericScatteringSphere