0

我正在使用 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 一起使用。

有谁知道可能出了什么问题或如何解决这个问题?

4

1 回答 1

0

我最终通过将登录的默认数据库设置为我需要使用的数据库来解决这个问题。由于某种原因,BIML 似乎忽略了连接字符串中指定的数据库。

于 2017-11-16T06:26:05.220 回答