2

这个问题可能与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 提供这种脚本?

4

2 回答 2

2

我们也有类似的问题。看起来我们可以用 做一些事情SET NOEXEC ON,如以下StackExchange答案所示。

IF (<condition>)
    SET NOEXEC ON
ELSE
    SET NOEXEC OFF
GO

CREATE DATABASE databasename
GO

SET NOEXEC OFF
GO
于 2014-09-25T12:05:07.027 回答
0

这就是说你不能在同一条 sql 中执行和创建。

即你需要做Select IF db_id('databasename') 测试它是否返回null,如果是则执行create database。

于 2013-06-02T12:35:54.960 回答