如何获取SQL Server数据的脚本?

时间:2010-02-23 19:28:18

标签: sql sql-server export

我正在寻找一种类似于SQL Server的MySQL转储的方法。我需要能够选择表并导出模式和数据(或者我可以通过SQL Server Management Studio导出模式并以某种方式单独导出数据)。

我需要这些数据能够转向并返回SQL Server,因此需要维护GUID / uniqueidentifier和其他列类型。

有谁知道这个好工具?

9 个答案:

答案 0 :(得分:315)

在SQL Server Management Studio中,您可以右键单击数据库并选择:

Tasks -> Generate Scripts

然后继续完成向导。当提示您选择脚本选项时,请确保将“脚本数据”设置为“TRUE”。

SQL Server 2008 R2

alt text

进一步阅读:

答案 1 :(得分:52)

SQL Server Management Studio

这是执行此任务的最佳工具。您可以生成一个脚本,该脚本将构建您希望从数据库中获取的任何表,并在这些表中插入数据(据我所知,您必须导出所选表中的所有数据)。

要执行此操作,请按以下步骤操作:

  1. 右键单击您的数据库,然后选择任务>生成脚本

  2. 在“生成并发布脚本”向导中,选择“#34;选择特定数据库对象"选项

  3. 展开"表格"树并选择要导出方案和数据的所有表,然后单击下一步

  4. 在下一个屏幕中选择您希望如何保存脚本(输出类型必须保持设置为"将脚本保存到特定位置"),然后单击右上角的“高级”按钮角

  5. 在新打开的窗口中,在常规部分下面是一个名为"要编写脚本的数据类型"的设置,将其设置为"方案和数据"然后单击“确定”

  6. 单击“下一步”,查看导出摘要,然后再次单击“下一步”。这将生成所选目的地的脚本。

  7. 要恢复数据库,只需创建一个新数据库并将生成的脚本的第一行更改为USE [Your.New.Database.Name],然后执行。您的新数据库现在将包含您从原始数据库中选择的所有表和数据。

答案 2 :(得分:36)

我有一段时间在SQL Management Studio 2012中找到这个选项,但我终于找到了它。该选项隐藏在下面屏幕的“高级”按钮中。

我总是认为这包含假定的文件生成高级选项,因为它就是它的下一步,但事实证明,在这种情况下,MS的某些人在UI设计上真的很糟糕。 HTH像我一样来到这个线程的人。

SQL Management Studio 2012

答案 3 :(得分:24)

如果要编写所有表行的脚本             按照Daniel Vassallo的描述使用Generate Scripts。你不能错在这里

否则           使用第三方工具(如ApexSQL Script或SSMS Toolpack)进行更高级的脚本编写,包括一些预处理,选择性脚本等。

答案 4 :(得分:7)

结帐SSMS Tool Pack。它适用于Management Studio 2005和2008.有一个选项可以生成插入语句,我发现这些语句有助于将少量数据从一个系统移动到另一个系统。

使用此选项,您必须单独编写DDL脚本。

答案 5 :(得分:5)

SqlPubWiz.exe(对我来说,它位于C:\ Program Files(x86)\ Microsoft SQL Server \ 90 \ Tools \ Publishing \ 1.2>)

运行它时没有向导的参数。给它参数在命令行上运行。

SqlPubWiz.exe script -C "<ConnectionString>" <OutputFile>

答案 6 :(得分:4)

为了完整起见,我也找到了这种方法:Microsoft SqlServer Database Publishing Wizard

答案 7 :(得分:1)

BCP可以将您的数据转储到文件中,在SQL Server Management Studio中,右键单击该表,然后选择“脚本表为”,然后选择“创建到”,然后“文件...”,它将生成一个完整的表脚本。

BCP信息
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/datacenter/?p=319
http://msdn.microsoft.com/en-us/library/aa174646%28SQL.80%29.aspx

答案 8 :(得分:1)

我知道这已经得到了回答,但我在这里提出警告。 我们最近收到了一个客户端的数据库,该数据库具有循环外键引用。 SQL Server脚本生成器拒绝为具有循环引用的数据库生成数据。