SQL Server 2008的免费架构导出?

时间:2009-12-17 05:13:12

标签: .net sql-server sql-server-2008

不确定这是属于这里还是属于ServerFault,但我想知道是否有人知道导出SQL Server 2008架构的免费工具?它仅适用于表及其索引,外键等,它需要是一个命令行工具才能作为构建过程的一部分运行。如果它可以读取.net连接字符串,那将是很棒的(因此.net标记)

不需要数据,任何类型的版本控制/差异也是“不错,但不需要”。是的,我知道Red-Gate的令人敬畏的SQL Server工具,遗憾的是这是一个0预算的爱好项目: - (

5 个答案:

答案 0 :(得分:5)

不确定现成的工具,但它很容易使用SMO库(Microsoft.SqlServer.Smo,.SmoEnum,.SqlEnum):

using Microsoft.SqlServer.Management.Smo;

var server = new Server("localhost");
var database = server.Databases["databaseName"];
var transfer = new Transfer(database);
var options = new ScriptingOptions();
// set transfer and options object properties to reflect what you want to script:
// i.e. all tables, indexes, triggers, etc.
options.FileName = "c:\\temp\\databaseName_schema.sql";
transfer.Options = options;
transfer.ScriptTransfer();

我使用此方法构建了一个简单的工具,以重新生成我的产品的数据库创建脚本,作为安装构建器中预构建步骤的一部分。

答案 1 :(得分:2)

出于好奇,您是否尝试在Visual Studio中使用SQL Server项目?

另一种方法是通过SQL脚本,因为我相信你已经知道了。可以使用generate script命令在命令行中运行。

答案 2 :(得分:2)

您始终可以使用SQL Server Management Studio执行此操作,右键单击数据库,选择“任务”,然后选择“生成脚本”。

答案 3 :(得分:1)

在CodePlex上有几个这样的免费命令行工具。其中一个是Scriptio,here

答案 4 :(得分:0)

微软几周前发布了一款名为mssql-scripter的新工具。它是一个免费的基于Python的开源命令行工具,您可以找到官方声明here。本质上,脚本编写器允许您为数据库/数据库对象生成一个.sql文件作为.sql文件。您可以生成该文件然后执行它。这可能是一个很好的解决方案,您可以生成模式(默认选项)您的数据库及其对象,如表和索引,也可以看到差异,因为它是生成的.sql文件。这是一个快速使用示例,可​​帮助您入门:

$ pip install mssql-scripter
# script the database schema and data piped to a file.
$ mssql-scripter -S localhost -d AdventureWorks -U sa > ./adventureworks.sql

更多用法示例在我们的GitHub页面上:https://github.com/Microsoft/sql-xplat-cli/blob/dev/doc/usage_guide.md