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