`
bicashy
  • 浏览: 157458 次
社区版块
存档分类
最新评论

Sqlserver 导出insert插入语句

    博客分类:
  • sql
阅读更多

      因数据迁移需要,需要将SQLserver的数据,导出成insert语句。这个操作如果是ORACLE数据库的话,操作那是相当的容易,但是换到SQLserver,确有些难度,自带的工具都无法完成这个操作。经过查证资料可以通过写一个存储过程来完成这个操作。

      我整理过得存储过程如下:

     

    

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
if exists(select 1 from sysobjects where id=object_id('BicashyOutputData') and xtype='P')   
   drop procedure BicashyOutputData;
GO
create procedure dbo.BicashyOutputData(@tablename varchar(256),@whereStr varchar(256))
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+' '+@whereStr  

print '--'+@sql  
exec(@sql)  

if @ident is not null  
print 'SET IDENTITY_INSERT '+@TableName+' OFF'  


GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

 

 

     建立好存储过程以后,可以调用存储过程查看生成好的insert 插入语句。

 

     具体操作:

     执行 exec BicashyOutputData cardinfo,'where drawOutper="李佩娟"'

     注意cardinfo是要执行的表名,'where drawOutper="李佩娟"' 是where条件,如果不需要查询条件全部导出,则可以直接写为: exec BicashyOutputData cardinfo,''

     还需要注意的一点就是如查询条件中含有字符串,需要在字符串前后加 “”

 

     最后将生成的记录,全部拷贝出来即可。

       

分享到:
评论

相关推荐

    从SQLSERVER数据库中导出记录生成insert into 语句

    从SQLSERVER数据库中导出记录生成insert into 语句

    sql server导出成sql语句

    由于sql server2005里没有像oracle那样将数据导出成sql语句(insert into)的功能。所以,写的一个存储过程,该存储过程将提成的表的数据全部生成insert into.....这样的插入语句。以便数据的复制。

    导出sql server表数据(以insert语句方式的存储过程)

    导出sql server表数据(生成以insert插入的语句方式的存储过程)

    Navicat_Premium_10.1.7(通用查询分析器,可将数据导出Insert语句)

    Navicat是一个通用查询分析器,支持MySQL、SQL Server、Oracle、SQLite、PostgreSQL等数据库。更可以将表中数据导出成Insert语句。

    SQL导出表数据

    导出sql server表数据(生成以insert插入的语句方式的存储过程)

    sqlserver 导出插入脚本代码

    代码如下: DECLARE @tbImportTables table(tablename varchar(128), deleted tinyint) — append tables which you want to import Insert Into @tbImportTables(tablename, deleted) values(‘tentitytype’, 1) ...

    Python 数据库Insert语句脚本生成工具(SQL Server)

    编写这个小工具,是因为平时部署项目的时候,需要导出一些公共的数据(权限、参数设置等),覆盖插入正式环境。 话不多说,直接上代码: import pyodbc import warnings import decimal import winreg import os ...

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

    Log Explorer for SQL Server v4.22 含注册机

    他可以支持SQLServer7.0、SQLServer2000和SQLServer2005,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l...

    Log Explorer for SQL Server v4.22

    他可以支持SQLServer7.0和SQLServer2000,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l 计划和授权变更...

    精通sql结构化查询语句

    10.5 UNIQUE子查询与嵌套子查询 10.5.1 UNIQUE子查询 10.5.2 嵌套子查询 10.6 小结第4篇 T-SQL开发常用操作篇第11章 数据的维护操作 11.1 数据的插入操作 11.1.1 INSERT语句的基本语法 11.1.2 插入单条记录 11.1.3 ...

    21天学会SQL

    12.2 使用INSERT语句插入数据 250 12.2.1 插入完整的行 250 12.2.2 向日期时间型字段插入数据 251 12.2.3 将数据插入到指定字段 251 12.2.4 将查询结果插入表 252 12.3 使用UPDATE语句更新数据 254 12.3.1 更新单个...

    精通SQL--结构化查询语言详解

    11.4.3 sql server数据库数据导出 227 11.4.4 sql server数据库数据导入 230 第12章 数据的更新和删除 233 12.1 更新表中的数据 233 12.1.1 update语句的基本语法 233 12.1.2 update语句更新列值 234 12.1.3 ...

    精通SQL 结构化查询语言详解

    11.4.3 SQL Server数据库数据导出  11.4.4 SQL Server数据库数据导入  第12章 数据的更新和删除  12.1 更新表中的数据  12.1.1 UPDATE语句的基本语法 12.1.2 UPDATE语句更新列值  12.1.3 利用子查询...

    经典SQL脚本大全

    │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ ...

    SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)

    –用SQL多条可以将多条数据组成一棵XML树L一次插入 –将XML树作为varchar参数传入用 –insert xx select xxx from openxml() 的语法插入数据 ———————————–导入,导出xml————————– –1导入实例 ...

    sql2000 Log Explorer4.2(含注册码)+汉化

    他可以支持SQLServer7.0和SQLServer2000,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l 计划和授权变更...

    SQL21日自学通

    插入语句157 INSERT VALUES 语句157 INSERT SELECT 语句161 UPDATE语句163 DELETE 语句166 从外部数据源中导入和导出数据169 Microsoft Access 170 Microsoft and Sybase SQL Server 171 Personal Oracle7171 总结...

    DtSQL通用数据库管理工具

    5. SQL生成工具:帮助生成查询,插入,更新,删除SQL语句 6. 数据导入:提供强大的数据导入功能. 能够从不同的数据文件导入数据: CSV files, Excel files, and fixed-width files.并可以选择integer, date, time, ...

    DtSQL 1.0.1

    5. SQL生成工具:帮助生成查询,插入,更新,删除SQL语句 6. 数据导入:提供强大的数据导入功能. 能够从不同的数据文件导入数据: CSV files, Excel files, and fixed-width files.并可以选择integer, date, time, ...

Global site tag (gtag.js) - Google Analytics