导出数据在SQL Server中作为INSERT INTO

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

我正在使用SQL Server 2008 Management Studio并且有一个我想要迁移到其他数据库服务器的表。

有没有选项将数据导出为插入SQL脚本?


#1楼

您还可以从以下位置查看SQL Server Management Studio 2008的“Data Scripter Add-In”:

http://www.mssql-vehicle-data.com/SSMS


他们的功能列表:

  • 它是在SSMS 2008上开发的,目前不支持2005版本(很快!)

  • 将数据快速导出到T-SQL以获取MSSQL和MySQL语法

  • 还支持CSV,TXT,XML! 充分利用SQL提供的全部潜力,力量和速度。

  • 不要等待Access或Excel为您执行可能需要几分钟时间的脚本工作 - 让SQL Server为您执行此操作并完成导出数据的所有猜测工作!

  • 自定义数据输出以进行快速备份,DDL操作等......

  • 快速有效地更改表名称和数据库模式以满足您的需求

  • 导出列名称或只生成没有名称的数据。

  • 您可以选择单个列来编写脚本。

  • 您可以选择数据子集(WHERE子句)。

  • 您可以选择数据排序(ORDER BY子句)。

  • 对于那些需要数据操作的低级数据库调试操作而言,它具有出色 在试验期间不要丢失数据。 即时操作数据!


#2楼

为了过度明显的无脑,在遵循marc_s的指示到这里 ...

在对象资源管理器的SSMS中,右键单击数据库,右键单击并选择“任务”,然后选择“生成脚本”。

...然后我看到一个向导屏幕,其中包含“ 简介,选择对象,设置脚本选项,摘要和保存或发布脚本 ”,底部带有上一个,下一个,完成,取消按钮。

在“ 设置脚本选项”步骤中 ,您必须单击“高级”以获取包含选项的页面。 然后,正如Ghlouw所提到的,您现在选择“脚本数据类型”并获利。

高级按钮突出显示红色!1 !!


#3楼

在对象资源管理器的SSMS中,右键单击数据库,右键单击并选择“任务”,然后选择“生成脚本”。

这将允许您为单个或所有表生成脚本,其中一个选项是“脚本数据”。 如果将其设置为TRUE,则向导将为您的数据生成带有INSERT INTO()语句的脚本。

如果使用2008 R2或2012,则称为其他内容,请参阅此下面的屏幕截图

替代文字

2008 R2或更高版本,例如2012

选择“脚本数据类型”,可以是“仅数据”,“架构和数据”或“仅架构” - 默认值)。

在此输入图像描述

然后在Codeplex(包括源代码)上有一个“ SSMS Addin ”包,它承诺几乎相同的功能和更多(如快速查找等)

替代文字


#4楼

如果您使用SQLServer 2008R2,则需要将数据类型设置为脚本字段。

在此输入图像描述


#5楼

以上所有都很好,但如果你需要

  1. 从具有连接的多个视图和表导出数据
  2. 为不同的RDBMS创建插入语句
  3. 将数据从任何RDBMS迁移到任何RDBMS

然后以下技巧是唯一的方法。

首先学习如何从源db命令行客户端创建假脱机文件或导出结果集。 其次学习如何在目标数据库上执行sql语句。

最后,通过在源数据库上运行sql脚本,为目标数据库创建insert语句(以及任何其他语句)。 例如

SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;

SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;

上面的示例是为Oracle的db创建的,其中无表选择需要使用dual。

结果集将包含目标db的脚本。


#6楼

下面是使用游标创建数据迁移脚本以迭代源表的示例。

SET NOCOUNT ON;  
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1

DECLARE cur CURSOR FOR 
    SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
    FROM CV_ORDER_STATUS
    ORDER BY [Stage]

PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'

PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';

OPEN cur
FETCH NEXT FROM cur
    INTO @row

WHILE @@FETCH_STATUS = 0
BEGIN
    IF @first = 1
        SET @first = 0
    ELSE
        SET @out = @out + ',' + CHAR(13);

    SET @out = @out + @row

    FETCH NEXT FROM cur into @row
END

CLOSE cur
DEALLOCATE cur

PRINT @out

PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'

#7楼

对于那些寻找命令行版本的人,微软发布了mssql-scripter来做到这一点:

$ pip install mssql-scripter

# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
                 -f './' --file-per-object

#8楼

搜索了很多,这是我最好的镜头:

如果您有大量数据并且需要紧凑而优雅的脚本,请尝试: SSMS Tools Pack

它生成一个union all select语句,用于将项插入目标表并很好地处理事务。

截图


#9楼

对于SQl服务器Mng Studio 2016:

在此输入图像描述


#10楼

如果您正在运行SQL Server 2008 R2,则内置选项可以在SSMS中执行此操作,因为上面描述的marc_s稍有改动。 现在,在“表/视图选项”分组的正上方有一个名为"Types of data to script"的新选项,而不是像他的图表中所示选择Script data = true 。 在这里,您可以选择仅脚本数据,仅脚本和数据或模式。 奇迹般有效。

[MSSQL]SQL Server里面导出SQL脚本(表数据insert语句)(转) 最近需要导出一个表的数据并生成insert语句,发现SQL Server的自带工具并米有此功能。BAIDU一下得到如下方法(亲测OK) 用这个存储过程可以实现: CREATE PROCEDURE dbo.UspOutputData  @tablename sysname  AS  declare @column varchar(1000)  declare @columndata 阅读详情

相关推荐

SQLServer导出Insert语句

读取SQLSERVER数据库中的用户表,把表中的用户数据导出Insert语句。

MS SQL Server数据导出Insert语句的几种方案

少量数据直接导出SQL语句,使用起来比较方便。大量数据,就用SQL Server的导入导出功能了。 使用过几种方式(仍然是用Google去搜索……): 1.直接使用存储过程 SQL Server 2000使用存储过程导出insert语句 http://wangchao-17915566.javaeye.com/blog/175361 这种方式看起来比较简单,而且...

weixin_30482383的博客 223

【CubeMX】STM32G474 HRTIM 互补PWM与死区时间配置实战

本文详细介绍了如何使用STM32CubeMX配置STM32G474的高分辨率定时器HRTIM生成互补PWM波形并精确设置死区时间。通过实战步骤讲解时钟配置、死区计算与高级功能,帮助工程师在电机驱动和电源应用中实现精准控制,避免上下桥臂直通风险。

grpc6streamer的博客 700

sql查询语句之插入、更新与删除数据

SQL增删改

weixin_42712867的博客 6466

sqlserver 将现有表数据编写成insert语句

3》第一步全选,第二步将结果另存为。4》这样就生成了一个文本文件了。

qq_38413756的博客 1122

SQL SERVER里表里的数据导出成为insert into 脚本

 摘录方法一:--使用方式 :proc_insert导出的表名create proc proc_insert (@tablename varchar(256))asbeginset nocount ondeclare @sqlstr varchar(4000)declare @sqlstr1 varchar(4000)declare @sqlstr2 varchar(4000

chenday的专栏 658

如何把SQL SERVER里表里的数据导出成为insert into 脚本

<br />如题 <br />--------------------------------------------------------------- <br /><br />在查询分析器以“文本显示结果”方法执行 <br />exec UspOutputData 你的表名 <br />得到导出数据的语句,但image,text,ntext,sql_variant 列不出现在语句,以后改进。 <br /><br />存储过程UspOutputData如下: <br /><br />CREATE   P

leo_net的专栏 668

SQL SERVER里表里的数据导出成为insert into 脚本,终于找到这个过程了

SQL SERVER里表里的数据导出成为insert into 脚本 终于找到这个过程了: Create PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @columndata

幸福的猪的专栏 1206

SQL Server里面如何导出包含(insert into)数据SQL脚本 (转载ZZ)

 通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。 因为SQL Server并不包含这个功能,只能靠第三方的代码了。 以下存储过程可以实现: CREATE PROCEDURE dbo.Us...

gaozzsoft的专栏 342

[转]SQL Server 2005 导出包含(insert into)数据SQL脚本

通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。 因为SQL Server并不包含这个功能,只能靠第三方的代码了。 以下存储过程可以实现: [code="java"] CREATE PROCEDURE db...

hanxin的专栏 202

SQL SERVER里表里的数据导出成为insert into操作方法

查询分析器以“文本显示结果”方法执行 exec UspOutputData 你的表名 得到导出数据的语句,但image,text,ntext,sql_variant 列不出现在语句,以后改进。 存储过程UspOutputData如下: CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column ...

weixin_30555753的博客 157

SQL Server 2005 导出包含(insert into)数据SQL脚本

通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。 因为SQL Server并不包含这个功能,只能靠第三方的代码了。 以下存储过程可以实现: [code="java"]CREATE PROCEDURE dbo.UspO...

hanxin的专栏 214
上一篇: 什么是.a和.so文件?
下一篇: 在外壳中获取程序执行时间
asdfgh0077
博客等级 码龄7年 144粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值