`
huanghuaibin
  • 浏览: 68334 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

将数据库数据导出成insert语句的存储过程

    博客分类:
  • SQL
阅读更多

因项目需要,在网上搜索到以下的存储过程,可以将数据库中的数据导出成insert安装脚本。(原存储过程有些错误,做了点修改)

 

CREATE PROCEDURE   [dbo].[outputdata]   

  @tableName Varchar(100)--表名
AS
    DECLARE @IsIdentity INT
    DECLARE @columnName VARCHAR(100)--列名
    DECLARE @TypeName VARCHAR(100)--数据类型
    DECLARE @columns VARCHAR(8000)--
    DECLARE @columnsAndhead VARCHAR(8000)--
     
    SET @columnsAndhead = 'INSERT INTO '+@tableName+'(['
    SET @columns = ''
     
    --获取表的所有字段名称
    DECLARE a CURSOR FOR
        SELECT COLUMNPROPERTY( a.id,a.name,'IsIdentity') AS IsIdentity, a.[NAME] AS ColumnName ,b.[NAME] AS TypeName
        FROM syscolumns a INNER JOIN systypes b ON a.xtype=b.xtype AND b.xtype=b.xusertype
        WHERE a.[id]=(SELECT [id] FROM sysobjects WHERE [NAME]=@tableName)
     
    OPEN a

    FETCH NEXT FROM a INTO @IsIdentity, @columnName ,@TypeName
        WHILE @@FETCH_STATUS = 0
            BEGIN
                IF @IsIdentity =0
                    BEGIN
                        IF @TypeName IN ('bigint','bit','decimal','float','int','money','numeric','real','smallint','smallmoney','tinyint')
                            BEGIN
                                SET @columns = @columns + 'ISNULL(CAST(['+@columnName +'] AS VARCHAR),''NULL'')+'',''+'
                            END
                        ELSE
                            BEGIN
                                SET @columns = @columns+ '''''''''+ ISNULL(CAST(['+@columnName +'] AS VARCHAR(50)),''NULL'')+ ''''''''+'',''+'
                            END
                        SET @columnsAndhead = @columnsAndhead + ''+ @columnName +'],['
                    END
                FETCH NEXT FROM a INTO @IsIdentity, @columnName ,@TypeName
             END


    SELECT @columnsAndhead = left(@columnsAndhead,len(@columnsAndhead)-2) +') VALUES('''
    SELECT @columns = left(@columns,len(@columns)-5)

    CLOSE a
    DEALLOCATE a

    exec('select '''+@columnsAndhead+'+'+@columns +'+'')'' as InsertSQL from '+@tableName)

     
--END
分享到:
评论
4 楼 風一樣的男子 2011-01-06  
工具多帮你做好了
3 楼 yuhang_java 2011-01-06  
需要这样?  难不成数据还需要移植? 如果不移植数据库就用1楼的方法进行导出来就可以。。。  如果数据库需要移植,比如从Oracle到Mssql   那么你这个存储过程貌似还不能满足吧?
2 楼 wxlmcqueen 2011-01-05  
假设一个需求
在页面加一个event

选择到表导出数据。

如何实现?

不会查询到内存然后打印吧?
1 楼 evanzzy 2011-01-04  
导Sql语句可以用Toad,还可导成dmp、excel、txt等格式,这个功能自己写有点麻烦了

相关推荐

    数据库数据导出为SQl语句工具,支持各种数据库数据导出

    4. **执行导出**:工具会遍历选定的表,生成对应的INSERT语句,每个语句代表一行数据。 5. **保存SQL脚本**:导出的结果通常以SQL文件形式保存,方便后续导入或查看。 在提供的压缩包文件"数据库数据导出成SQL语句...

    SQLServer导出为Insert语句

    本话题聚焦于如何将SQL Server中的用户表数据导出为Insert语句,这通常用于数据迁移、备份或者测试环境的数据填充。下面我们将详细讨论这个过程以及涉及的相关技术。 1. **SQL Server数据库**:SQL Server是由微软...

    SQL 导出数据 insert 语句

    在压缩包中的`mssql.exe`可能是一个第三方工具,用于方便地从MSSQL数据库导出数据为INSERT语句。使用这样的工具,用户可以节省编写和调试脚本的时间,特别是处理大型数据集时,能更高效地完成数据导出工作。 总的来...

    Oracle导出INSERT语句V1.1

    总的来说,“Oracle导出INSERT语句V1.1”是数据库管理员和开发人员的强大助手,它可以简化数据迁移和备份过程,提高工作效率。了解如何有效利用这个工具,将有助于我们在Oracle数据库管理中更高效地完成任务。

    将数据库中的数据转换成insert语句

    本文档介绍了一种通过编写存储过程来实现这一目标的方法:将数据库中的数据转换为SQL INSERT语句。 #### 一、存储过程概述 **存储过程**是一种在数据库服务器上预先编译好的SQL程序块,它能够接受输入参数,并返回...

    将表中数据导出为insert sql 语句

    根据给定的文件信息,我们将深入探讨如何将数据库表中的数据导出为SQL INSERT语句。这种方法在数据迁移、备份或需要将数据插入到另一个数据库的场景中非常有用。下面,我们将详细介绍这一过程的关键步骤和技术细节。...

    将数据库中的初始化数据转换成INSERT语句的存储过程

    综上所述,创建一个将数据库中的初始化数据转换成INSERT语句的存储过程是一项有价值的技能,它可以帮助我们高效地管理和维护数据库。通过理解和掌握这个过程,我们可以提高工作效率,同时确保数据的准确性和一致性。...

    DB2数据库自动导出数据INSERT SQL脚本工具

    总之,"DB2数据库自动导出数据INSERT SQL脚本工具"是DB2数据库管理的得力助手,通过自动化生成INSERT语句,简化了数据导入导出的过程,为数据库的日常维护提供了便利。使用这个工具,可以让你更加专注于业务逻辑和...

    将数据库表数据生产Insert语句

    通过存储过程将表数据生产对应的Insert语句

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

    此存储过程将适用于多种数据类型,并能够动态生成插入语句,以便用户可以方便地导出数据作为脚本来进行备份或迁移等操作。 ### SQL Server 存储过程设计 #### 1. 存储过程概述 该存储过程的主要功能是接受一个表名...

    SQLServer数据库表中数据导出成SQL语句工具

    由于SQL Server可能有长度限制,所以大型表的数据导出可能会被拆分成多条INSERT语句,以确保导入时不会超出单条语句的最大允许长度。 3. **MHT格式**:选择MHT格式是为了方便存储和分发这些SQL语句。MHT文件是一个...

    SQLServer表数据转化为sql语句(表数据搬运,一键快捷导出为insert语句,方便导入到其它库)

    (包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件,如'a=''123'' '(传空时,导出全表数据) 不足: 不支持binary,image等...

    h2数据库批量导出

    1. 插入数据:使用INSERT语句向表中插入数据,如`INSERT INTO users (id, name) VALUES (1, 'John');`。 2. 批量插入:H2支持批处理,可以一次性插入多条记录,例如: ``` VALUES (1, 'John'), (2, 'Jane'), (3, '...

    导出insert语句的存储过程sql脚本

    该存储过程提供了一种简单有效的方法来将现有表中的数据转换成INSERT语句。这对于备份数据、恢复数据或迁移数据库等场景都非常有用。此外,它还考虑了各种数据类型以及IDENTITY列的特殊处理,确保生成的INSERT语句...

    数据库数据导出工具(支持多种数据库)

    3. 设置导出选项:这可能包括选择数据格式(如CSV、XML、JSON或INSERT语句)、是否包含触发器和存储过程、是否进行数据过滤等。 4. 执行导出:工具将根据设定的参数生成相应的文件,这可能需要一些时间,尤其是对于...

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

    如果指定的表具有`IDENTITY`属性(自动递增的主键),存储过程会在开始时设置`IDENTITY_INSERT`开关,以便能够插入具有身份列的行,在完成数据导出后将其关闭。 ### 5. 应用场景与注意事项 - **应用场景**:此存储...

    sqlserver导出insert语句的存储过程

    在 SQL Server 数据库管理系统中,有时候我们需要将表中的数据导出成一系列的 INSERT 语句,这对于备份、恢复或者迁移数据非常有用。本篇文章详细介绍了一个名为 `dataToSQLScript` 的存储过程,该过程能够帮助用户...

    将sqlserver表中指定数据转化为insert语句

    在SQL Server中,有时我们需要将现有表中的特定数据导出为INSERT语句,以便在其他数据库或备份中重建这些记录。这通常在迁移数据、创建测试数据或者进行数据备份时非常有用。以下是如何将SQL Server表中指定数据转化...

    导出数据库数据的储存过程

    下面我们将详细介绍一个用于导出SQL Server 2005数据库数据的存储过程,并对其进行深入解析。 #### 存储过程概述 存储过程是一种预编译的SQL代码集合,它可以被当作单独的对象存储在数据库中,通过调用名称来执行...

    MS SQL数据导出Insert语句(SQLDMO)

    2、将选定数据库对象(表、视图、存储过程等)生成Script 3、支持单表的SQL语句,关联表以第一个表为准 4、丰富了生成选项配置 5、树型结构方便查询操作 6、保存连接及选项配置 7、SQLDMO注册方法压缩包里有 欢迎提供...

Global site tag (gtag.js) - Google Analytics