如何部署BIML脚本来创建数据库

时间:2017-07-28 14:36:09

标签: biml

我正在从bimlscript.com学习BIML并完成了这里的步骤:http://www.bimlscript.com/Walkthrough/Details/3111。我让它为localhost上的数据库创建一个新表。如何使用BIML Express运行此操作? Visual Studio的BIMLExpress菜单仅提供生成SSIS包的选项。

1 个答案:

答案 0 :(得分:1)

生成SSIS包或检查错误,同时评估Biml和BimlScript。

作为本文的快速摘要,它向您展示了使用Biml建模或描述关系工件(数据库/模式/表)。这可以通过GetDatabaseSchema手动或通过逆向工程完成。

问题是,这些工件都在内存中。一旦编译器完成生成SSIS包或检查错误,它们就会消失。你要做的是有一个按钮或BimlExpress“生成数据库对象。”

这不是直接存在的 - 但您可以使用更多BimlScript构建所需的所有工具。您可以使用分层和评估RootNode's biml

来检查评估的Biml

使用GetDropAndCreateDdl方法未显示引用的文章。在内存中调用它关系对象(数据库/模式/表)将把Biml转换为SQL定义。

您需要弄清楚的是,您是否每次都要运行SQL,只需生成SQL文本文件或生成一个SSIS包,然后执行该命令以运行SQL命令。

例如,这一点Biml会在预览窗口中生成所需的所有drop和create语句。

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <#
    foreach(var db in RootNode.Databases)
    {
        WriteLine(db.GetDropAndCreateDdl());
    }

    foreach(var schema in RootNode.Schemas)
    {
        WriteLine(schema.GetDropAndCreateDdl());
    }

    foreach(var table in RootNode.Tables)
    {
        WriteLine(table.GetDropAndCreateDdl());
    }
    #>
</Biml>

如果我想保存到文件,请用System.IO.File.WriteAllText

替换WriteLine调用

如果要将这些命令作为SQL命令启动,那么它将会更加复杂,因为您需要实例化与数据库关联的连接管理器,然后运行ddl。