以下のSQLプロジェクト用に自動生成されたデプロイメントスクリプトを削除する必要があります。 SSDT 14.06でVS 2015を使用しています。これは、[ドロップ]タブの[詳細展開]設定で設定できるものですか。これは、既存のデータベース展開用です。
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL)
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [$(DatabaseName)];
END
GO
PRINT N'Creating $(DatabaseName)...'
GO
CREATE DATABASE [$(DatabaseName)]
ON
PRIMARY(NAME = [$(DatabaseName)], FILENAME =
N'$(DefaultDataPath)$(DefaultFilePrefix)_Primary.mdf')
LOG ON (NAME = [$(DatabaseName)_log], FILENAME =
N'$(DefaultLogPath)$(DefaultFilePrefix)_Primary.ldf') COLLATE
SQL_Latin1_General_CP1_CI_AS
GO
USE [$(DatabaseName)];
プロパティの展開オプションに次の項目がすべて含まれていますチェックされていない:
-データベースプロパティのデプロイ
-常にデータベースを再作成します
-データ損失が発生する可能性がある場合、増分展開をブロックします
-ターゲットではなくオブジェクトではないDROPオブジェクト
-CLRタイプの更新にALTER Assemblyステートメントを使用しないでください
私は、コードが2つの状況でスクリプト化されることを見たことがあります。
このオプションは、展開プロセスの動作方法に応じて、複数の方法で設定できます。
これは、1回限りのパブリッシュを実行するか、再利用可能な「.publish.xml」ファイルを保存するときのユーザーインターフェースにあります。
UIを使用しない場合、これはパブリッシュファイルXMLで確認できます。
<CreateNewDatabase>True</CreateNewDatabase>
デフォルトは「False」なので、要素がないこともfalseを意味することに注意してください
これをコマンドラインパラメータとしてsqlpackage.exe
に渡すこともできます。
/p: CreateNewDatabase=True
ターゲットデータベースが存在しない場合は、安全性を考慮してスクリプトに追加され、新しいデータベースの作成に失敗しないようになっています。
公開XMLのこれらのプロパティが、存在する有効なデータベースを指していることを再確認する必要があります。
<TargetDatabaseName>YourDatabaseName</TargetDatabaseName>
<TargetConnectionString>Data Source=...etc...</TargetConnectionString>
そして、これはUIにあります:
howの詳細を共有できる場合は、公開スクリプトを生成します(たとえば、SSDTを右クリックするなど、実行する手順Visual Studioのプロジェクト、発行など)、それが表示されている理由を追跡できます。