我正在尝试更新生产安装程序中的一个旧脚本,以便它可以同时使用Azure SQL和SQL。问题是我们的脚本正在调用USE来切换数据库。在prem上,我们正在创建数据库,在Azure中,它已经为我们创建了……所以我们正在检测它的存在并继续前进。然而,这就是我们调用USE进行切换的地方,因为在prem。
我希望我能在Azure 中跳过它
IF NOT SERVERPROPERTY('edition') = 'SQL Azure'
USE MYDB
我仍然得到";不支持USE语句在数据库之间切换"破解方法是将其放入字符串中,并使用:EXEC sp_executesql-运行
这适用于大多数情况,但我不认为它适用于USE语句。有没有什么方法可以让Azure SQL解析器跳过这一部分,因为它永远不会被执行?
我对基于SQL的解决方案持开放态度。。。但我尽量避免重新安排安装程序。
USE语句不支持在数据库之间切换
在Azure SQL数据库上,只有当您尝试"使用"其他数据库时才会发生此错误。
在Azure SQL数据库中,数据库参数只能引用当前数据库。如果当前数据库以外的数据库如果提供,USE语句不会在数据库和返回错误代码40508。
USE(Transact-SQL(
类似地,允许使用引用当前数据库的三部分名称。