適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の SQL データベース
SQL プロジェクトは、プロジェクトのビルド プロセス中にデータベース オブジェクト参照を検証します。 既定では、SQL プロジェクトにはデータベース モデルにシステム オブジェクトが含まれず、プロジェクトにシステム オブジェクトへの参照が含まれている場合、検証エラーが発生する可能性があります。 これらの検証エラーを解決するには、プロジェクトのターゲット プラットフォームの master.dacpac へのデータベース参照を含めます。
master.dacpac データベース参照は、Microsoft.Build.Sql SDK スタイルの SQL プロジェクトのパッケージ参照として、または SDK スタイルと元の SQL プロジェクトの両方で成果物参照として追加できます。
パッケージ参照を追加する
使用可能なシステム データベース パッケージは次のとおりです。
-
SQL Server
masterシステム データベース -
SQL Server
msdbシステム データベース -
Azure SQL Database
masterシステム データベース - Fabric システム オブジェクト内の SQL データベース
-
Azure Synapse Analytics
masterシステム データベース Azure Synapse Analytics サーバーレス プールシステム データベース
SQL プロジェクトにパッケージ参照を追加する最も直接的な方法は、.NET コマンド ライン インターフェイス (CLI) を使用することです。 次の例では、Azure SQL Database master システム データベースへのパッケージ参照を SQL プロジェクトに追加します。
dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master
このコマンドは、次のエントリを .sqlproj ファイルに追加します (パッケージ バージョンには、コマンドの実行時に使用可能な最新バージョンが反映されます)。
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
</ItemGroup>
</Project>
アーティファクト参照を追加する
VS Code および Visual Studio SQL プロジェクト インターフェイスは、プロジェクトのターゲット プラットフォームの master.dacpac ファイルに成果物参照を追加するためのメソッドを提供します。
.sqlproj ファイルに対する結果の編集は次の例のようになります。この例では、Visual Studio の Azure SQL Database master システム データベースに成果物参照が追加されます。
<ItemGroup>
<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac">
<HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac</HintPath>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
</ArtifactReference>
</ItemGroup>
master.dacpac ファイルは、アプリケーションのインストール場所から参照されます。これは、一部の CI/CD システムでは脆弱な場合があります。
master.dacpac ファイルをソリューション内の場所にコピーし、ビルド システムにシステム データベース ファイルが含まれていない場合は、その場所を指すIncludeとHintPath属性を更新できます。
Fabric の SQL データベース
Fabric システム オブジェクト内の SQL データベースは Microsoft.SqlServer.Dacpacs.DbFabric パッケージに含まれていますが、Fabric 環境の SQL データベースのデータベース参照を正しく構成するには、追加の手順が必要になる場合があります。
Fabric の統合ソース管理で作成された SQL プロジェクトには、パッケージ参照と、DatabaseVariableLiteralValueに設定された master プロパティが含まれます。 このプロパティは、Fabric の SQL データベースは master データベースへのアクセスを提供しませんが、ユーザー データベース内で同じシステム オブジェクトを参照できるため、必須です。
Visual Studio または VS Code で新しい SQL プロジェクトを作成する場合は、 DatabaseVariableLiteralValue プロパティを更新して、Fabric 環境の SQL データベースで使用されているデータベース名と一致するように master する必要があります。
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
<Version>170.0.0</Version>
</PackageReference>
</ItemGroup>