我使用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。
有没有人知道可能出现什么问题或如何解决这个问题?
答案 0 :(得分:0)
我最后通过将登录的默认数据库设置为我需要使用的默认数据库来解决此问题。出于某种原因,BIML似乎忽略了连接字符串中指定的数据库。