2

この質問は、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 で ck と create を行うことはできないと言っています。

つまり、Select IF db_id('databasename') を実行して、null が返されるかどうかをテストし、返された場合はデータベースの作成を実行する必要があります。

于 2013-06-02T12:35:54.960 に答える