此问题可能与Checking if database exists or not in SQL Azure有关。
在SQL Azure中,我尝试使用这样的脚本来检查数据库的存在,并创建数据库(如果它还不存在)(在SQLCmd和SSMS中):
IF db_id('databasename') IS NULL CREATE DATABASE databasename
GO
但是,SQL Azure一直在告诉我
Msg 40530, Level 16, State 1, Line 2
The CREATE DATABASE statement must be the only statement in the batch.
虽然相同的脚本适用于本地SQL Express实例。
这是否意味着SQL Azure不支持它? 或者有什么工作吗?
提前致谢。
Eidt: 让我澄清一下我想要实现的目标: 我想要一个脚本,只有在以前不存在的情况下才能创建某个数据库。 是否可以为SQL Azure提供此类脚本?
答案 0 :(得分:2)
我们遇到了类似的问题。
看起来我们可以使用SET NOEXEC ON
执行某些操作,如以下StackExchange答案。
IF (<condition>)
SET NOEXEC ON
ELSE
SET NOEXEC OFF
GO
CREATE DATABASE databasename
GO
SET NOEXEC OFF
GO
答案 1 :(得分:0)
它说你无法做到并在同一块sql中创建。
即你需要选择IF IF db_id('databasename') 测试它是否返回null,如果是,则执行create database。