`
xinklabi
  • 浏览: 1568272 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

将sqlserver表中的数据导出sql语句或生成insert into语句

 
阅读更多
--将sqlserver表中的数据导出sql语句或生成insert into语句

if Object_id('UspOutputData') is not null
    drop PROCEDURE UspOutputData;
go
CREATE PROCEDURE dbo.UspOutputData 
    @tablename sysname 
AS
BEGIN 
    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  --case
            end -- if 
        end --if
        fetch next from syscolumns_cursor into @name,@xtype 
    end  --while

    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' 
END;
GO

/*
--使用方法: 

  exec UspOutputData 你的表名 

--选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。
*/

使用DBVisualizer Personal版执行命令,生成的结果列表中右键export导出成sql就可以了,或者使用copysel

选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。

另外可以利用第三方工具,导出饮食备注型字段的数据数据可以用powerbuilder。在database painter里面,用SQL选出,或者直接打开表,点击生成的list datawindow,然后在菜单file->save rows as->选择SQL,那么生成的SQL语句就包括建表和insert数据的SQL了。

还有最完善的方式就是自己编程实现导入导出,这样可以应对所有情况的数据转换。

分享到:
评论

相关推荐

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

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

    Sql Server导出数据 INSERT 脚本

    可以将数据库中的数据导出insert into脚本, sql server2008以上版本已经自带导出数据库数据成insert脚本功能,该工具针对2005以下版本.使用时先选择数据库服务器地址,在右侧选择Sql Server login,输入数据库账号...

    sqlserver表数据生成insertsql脚本(导出成insertsql脚本).pdf

    SQL Server表数据生成INSERT SQL脚本 SQL Server是一种强大的关系数据库管理系统,提供了多种方式来生成INSERT SQL脚本,以便将数据导出到其他数据库或系统中。在本文中,我们将介绍如何使用SQL Server 2008中文版...

    SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程

    SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程

    将sql server数据表生成sql文件,可用查询分析器直接运行

    可将sql server 数据表生成sql语句 语句中包括建表部分和数据部分 常用作sql server 数据导入 例如:--表 buyi_product_comment 的结构 CREATE TABLE buyi_product_comment(proId varchar(50) not null,companyid ...

    SQL Server三种导入导出数据方式比较

    SELECT INTO FROM 语句可以将源表中的数据导入到一个新建的空表中,而 INSERT INTO 语句可以将源数据插入到已经存在的表中。 例如,我们可以使用以下 SQL 语句来将数据从 table1 导入到 table2 中: SELECT * INTO...

    sql server导出成sql语句

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

    把msSqlServer 中的数据导出成 insert into语句

    把msSqlServer 中的数据导出成 insert into语句

    利用SQLServer的DTS操作EXCEL、Access等数据表的导入导出.pdf

    利用 SQL Server 的 DTS 操作 EXCEL、Access 等数据表的导入导出 数据库管理员经常需要将数据从一个数据库迁移到另一个数据库中,或者将数据从外部数据源导入到数据库中。在 SQL Server 中,我们可以使用 DTS(Data...

    利用SQL Server的DTS操作EXCEL、Access等数据表的导入导出

    1. 在 SQLSERVER 企业管理器中的 Tools(工具)菜单上,选择 Data Transformation Services(数据转换服务),然后选择 Import Data(导入数据)。 2. 在 Choose a DataSource(选择数据源)对话框中选择 Microsoft ...

    Access导入到SQL Server数据库中的三种方法.docx

    此种方法如果 SQL Server 数据库中没有相应的数据表,则会自动创建改表,但是约束等表关系不会同步导入,如果 SQL Server 中有相同名称并且属性相同的数据表,则会直接将 Access 数据库中的对应表的数据导入。...

    SQL与ACCESS (EXCEL)之间的数据转换

    本文将介绍使用DTS向导和Transact-SQL语句来实现SQL Server、ACCESS和EXCEL之间的数据转换。 一、使用DTS向导实现数据转换 DTS(Data Transformation Services)是SQL Server提供的一种数据导入导出工具,它可以将...

    生成表记录的insert语句

    根据表中的记录生成insert语句的脚本

    通用数据导出工具

    怎样将表中数据导出,形成insert into 表名 values(...)这样的语句?独此一家 , 别无分号 支持sqlserver access oracle mysql 就用这个软件好了~!

    SQL SERVER 和ACCESS的数据导入导出.doc

    使用以下语句可以将 SQL SERVER 表里的数据插入到 ACCESS 表中: ```sql insert into OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB.mdb";UserID=Admin;Password=')...表名 (列名1,列名2) select ...

    Office数据库升迁 Access 导入 SQL Server

    Office数据库升迁 Access 导入 SQL Server,相信大家都知道 SQL-Server 数据库导入导出功能吧,但当你装了精简版的SQL-Server这个功能就会没有了,也就是无法实现数据库导入导出,那么怎么办 写SQL语句? Insert ...

    excel导入sql2005的几种方法归纳

    [SQL]将Excel表数据导入SQL Server2005的几种方法归纳 数据库 2010-07-27 11:14:26 阅读201 评论0 字号:大中小 订阅 近日在巨轮着手车间负荷数据处理,反馈回来的数据是保存在Excel文件中的,我必须将其导入SQL ...

    用友GRP-U8R10政务管理软件AO数据采集方法.pdf

    3. 采用 SQL语句对数据库中数据表进行相应处理; 4. 导出处理后的数据表; 5. 在 AO2011中采用数据库数据采集导出的数据表。 通过以上方法,可以顺利地完成AO数据采集,解决了财务软件升级后无法采集数据的问题。

    sqlserver 导出插入脚本代码

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

    数据库原理及应用教程ppt课件.ppt

    使用 SQL 语言,可以使用 INSERT、UPDATE 和 DELETE 语句对数据库中的数据进行增删改操作。例如: ```sql INSERT INTO students (sno, sname, ssex, sage, sdept) VALUES (1, 'John', 'M', 20, 'CS'); ``` 这将向 ...

Global site tag (gtag.js) - Google Analytics