如何从SQL Server导出数据?

5

我需要将SQL Server 2005中的数据库导出为SQL脚本(就像我们可以轻松地在MySQL中做到的那样)。因此,我希望得到生成的脚本文件,如下所示:

INSERT INTO ... [row 1]
INSERT INTO ... [row 2]
INSERT INTO ... [row 3]
...

有人能逐步解释一下我该如何做吗?

6个回答

6
实际上,从 MSSQL 2005 数据库导出数据的最简单方法之一是使用 SQL Server Database Publishing Toolkit,该工具在 Scott Guthrie 的博客中详细描述。
此外,SQL 数据库发布工具包是从 SQL 2005 中已经内置的工具衍生而来的。文章 Create Script to Copy Database Schema and All The Objects – Stored Procedure, Functions, Triggers, Tables, Views, Constraints and All Other Database Objects 将引导您完成脚本编写数据库对象的不同步骤。
另一个源自SQL 2005工具的工具是数据库发布向导,它是一个命令行工具,可以脚本化数据库的所有项。
最后一个链接告诉你如何使用数据库发布向导脚本化表数据
祝好运,希望这能帮到你。

好用的工具,当然,但它需要单独安装并且需要Visual Studio或Visual Web Developer。实际上,我需要从一些我为之开发的组织中获取数据库。由于某些原因,安装新软件相当困难。因此,我更喜欢一些与MS SQL Server 2005一起提供的工具或不需要安装的工具。 - levanovd
除了我之前的评论: 我忘记了SQL Management Studio工具也是可用的,因为他们已经安装了它。 - levanovd
管理工具和命令行工具已添加额外的链接。 - Chris

0

如果您需要将整个数据库(包括架构、对象和数据)复制到其他地方,我认为最简单的方法是创建完整备份,然后在其他地方还原。SQL Server Management Studio 包括许多不同的选项来生成备份,包括包含用户和脚本对象级权限等选项。有关在 SQL Server Management Studio 中 创建备份从备份还原 的详细说明,请参阅 MSDN。

如果您只想脚本插入语句以将数据复制到其他地方,我使用了这个 存储过程 取得成功。该脚本顶部的注释中有详细说明(向下滚动以查看示例,跳过注意事项)。基本上,一旦执行了存储过程一次,就可以使用类似以下命令调用该存储过程:

EXEC sp_generate_inserts 'tableName'

0

试试这个

SELECT 'EXEC sp_generate_inserts ' + 
'[' + name + ']' + 
',@owner = ' + 
'[' + RTRIM(USER_NAME(uid)) + '],' + 
'@ommit_images = 1, @disable_constraints = 1'
FROM sysobjects 
WHERE type = 'U' AND 
OBJECTPROPERTY(id,'ismsshipped') = 0

我的代码库获取。只需在页面下方稍微滚动一下,您就会找到。

希望这可以帮助到您。


0

SQL Server Management Studio没有这个功能。您需要一些第三方工具。

例如RedGate或SQLDumper

或者您可以自己编写。


0
我之前处理过类似的问题,通过编写一个脚本(VBScript)来解决。可以处理大多数数据类型,包括二进制大对象(blobs)。
我的网站获取脚本。
希望对你有所帮助。

0

SQL 2005中没有这个功能。然而,在SQL 2008中添加了此功能,因此其中一种解决方案是升级。如果符合您的要求,您可以使用免费的SQL Express或低成本的SQL Developer。

否则,您需要编写一个程序来实现它,或者使用第三方解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接