我正在使用 BIML 来询问源数据库和目标数据库的架构,检查所有配置是否正确,然后生成一堆 SSIS 包。我的问题是,有时 OLE DB 连接开始使用 Master 系统数据库,而不是我在连接字符串中指定的数据库。我可以通过检查返回的表来判断它是主数据库。
我使用 BIML 标记定义连接:
<OleDbConnection Name="appdb" ConnectionString="Server=<#=ReplicationConfig.appdbHostname#>;Database=<#=ReplicationConfig.appdbDatabaseName#>;Integrated Security=SSPI;Provider=SQLNCLI11;" CreateInProject="true" />
我主要是在尝试GetDatabaseSchema()
在 BIML 根节点上使用 OleDbConnection 对象的方法时遇到这个问题。虽然我在尝试使用 Execute SQL 任务时也遇到过它。执行 SQL 任务很容易解决,因为我可以完全限定表,[DatabaseName].[schema].[Table]
但我没有该GetDatabaseSchema()
方法的选项。我也尝试过使用ImportDB()
andGetTableNodes()
他们都遇到了同样的问题。
当尝试从开发环境迁移我的解决方案以测试该问题时再次出现。在过去,这已通过重新启动 Visual Studio(或在 SQL 查询中解决它)来解决。然而,这一次并没有奏效。
我将 BIML Express 与 Visual Studio 2015 一起使用。
有谁知道可能出了什么问题或如何解决这个问题?