用于创建数据库的脚本(如果SQL Azure中尚不存在)

时间:2013-06-02 11:58:31

标签: sql database azure azure-sql-database

此问题可能与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提供此类脚本?

2 个答案:

答案 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。