20

SQL Server 是否有与带有 mysqldump 的 MySQL 等效的架构和数据导出/转储工具。试图重新定位一个遗留的 ASP 站点,我对在 Windows 服务器上工作感到不满意。

注意:DTS 导出实用程序自己的似乎导出数据,没有表定义。使用企业管理器和导出数据库更接近导出模式和数据......但仍然错过存储过程。

基本上是在寻找一个可以一次性满足我所有需求的解决方案。

4

11 回答 11

23

要使用 SQL Server 2008 Management Studio 轻松完成此操作:

1.) 右键单击​​数据库(不是表)并选择任务 -> 生成脚本

工具的位置

2.) 在第一页点击下一步

3.) 如果要复制整个数据库,只需单击下一步。如果要复制特定表,请单击“选择特定数据库对象”,选择所需的表,然后单击下一步。

4.) 应选择“保存到文件”。重要提示:单击“保存到文件”旁边的“高级”按钮,找到“要脚本的数据类型”,然后将“仅模式”更改为“模式和数据”(如果要创建表)或“仅数据”(如果您要将数据复制到现有表中)。

将数据添加到脚本

5.) 点击其余部分,您就完成了!它将保存为 .sql 文件。

于 2013-07-15T18:28:21.700 回答
11

最简单的方法是 sql server 数据库发布向导。

  • 开源
  • 自由
  • 做你想要的
  • 由微软开发

它没有 mysqldump 的所有功能,但足够接近。

http://www.codeplex.com/sqlhost/wiki/view.aspx?title=database%20publishing%20wizard

于 2008-09-17T17:26:32.197 回答
10

移动数据库的最简单方法是使用 SQL Server Management Studio 将数据库导出到另一台服务器,或者如果这不起作用,请按照其他人的建议进行备份并在其他地方恢复。

如果您正在寻找一种将表结构转储到 SQL 以及为数据创建插入脚本的方法,一个不错的免费选择是使用来自http://www.asql.biz/en/Download2005.aspx的 amScript 和 amInsert .

如果您想要一个好的付费版本,我会查看 Red-Gate SQL Compare 和 Red-Gate SQL-Data Compare。但是,如果您不打算大量使用它们,这些工具可能有点矫枉过正,而且可能有点贵。我认为它将主要归入 DBA。您可以在http://www.red-gate.com/查看 Red-Gate 工具。

于 2008-09-17T16:51:56.897 回答
6

没有找到合适的工具,我决定创建自己的:一个 sqlserverdump 命令行实用程序。在github上查看。

于 2011-09-21T14:35:49.950 回答
2

更简单的是使用 SMO API。它可以让你做的和 mysqldump 完全一样,甚至更好。这是一个代码示例:

http://samyem.blogspot.com/2010/01/automate-sql-dumps-for-sqlserver.html

于 2010-01-05T15:50:46.920 回答
1

嗯,Mysqldump 就是一系列的 SQL 语句。您可以使用 DTS 做到这一点,但为什么不直接在新机器上创建备份并恢复它呢?

如果您想通过 SQL 执行此操作:http: //msdn.microsoft.com/en-us/library/aa225964 (SQL.80).aspx

或者只需右键单击数据库并点击任务-> 备份 ( http://msdn.microsoft.com/en-us/library/ms187510.aspx )

于 2008-09-17T16:45:53.603 回答
0

最简单的是备份和恢复或分离和附加

或编写所有表的脚本并 BCP 输出数据,然后 BCP 在新服务器上的数据中

或使用 DTS/SSIS 来执行此操作

于 2008-09-17T16:46:34.587 回答
0

SQL Enterprise manager 或 SQL Server Management studio 具有基于向导的方法,后者将生成脚本,以便您了解它是如何完成的。

您还可以使用 BACKUP 和 RESTORE 命令。更多细节在这里:http: //msdn.microsoft.com/en-us/library/ms189826.aspx

于 2008-09-17T16:48:35.767 回答
0

如果您可以让 DTS 或集成服务连接到两台服务器,则可以使用向导将对象从一台服务器“复制”到另一台服务器。“复制数据库”要求两台服务器可以相互验证,这通常意味着在同一个域中,并且服务在域登录下运行。

否则,您可以为架构生成脚本,并且可以使用 Integration Services/DTS 包将数据导出到文件,然后在另一个文件中导入。

我们现在一般使用SQL CompareSQL Data Compare。Red Gate 的SQL Packager也可能是一个选项。

于 2008-09-17T16:48:54.067 回答
0

备份/恢复不会做的两件事:

  1. 从 Microsoft 服务器下车,这是原始问题的一部分
  2. 当其中一个运行缓慢时,帮助快速找到应该具有相同结构的两个 DB 之间的结构差异。Unix diff 或 sdiff,忽略空格,但需要一种方法来制作输入文件。
于 2010-08-05T17:07:55.380 回答
0

如果您需要 CREATE TABLE... & INSERT INTO... 等等效 SQL 语句,那么我建议您尝试 HeidiSQL。这是一个很棒的免费实用程序,可以访问 Microsoft SQL Server、MySQL 和 PostgreSQL。它使您能够浏览和编辑数据、创建和编辑表、视图、过程、触发器和预定事件。此外,您可以将结构和数据导出到 SQL 文件。 http://www.heidisql.com

转到工具/将数据库导出为 SQL 并选择架构。选中该框以创建表格和“插入”数据。就是这样。

我更喜欢 HeidiSQL 到“Microsoft SQL Server Management Studio”或 phpMyAdmin... 等。

于 2018-04-30T21:31:21.657 回答