SQL Database プロジェクトの拡張機能

SQL Database Projects 拡張機能は、プロジェクトベースの開発環境で SQL データベースを開発するための、Azure Data Studio と Visual Studio Code の拡張機能です。 互換性のあるデータベースは、SQL Server、Azure SQL Database、Azure SQL Managed Instance、Azure Synapse SQL などです。 SQL プロジェクトは、テーブル、ストアド プロシージャ、関数など、単一データベースのスキーマを構成する SQL オブジェクトをローカルで表現したものです。 SQL データベース プロジェクトがビルドされたときの出力成果物は .dacpac ファイルです。 SQL Database Projects 拡張機能を使って SQL データベース プロジェクトを発行することで、またはコマンド ライン インターフェイスで SqlPackage を使って .dacpac を発行することで、.dacpac の内容と一致するように新規と既存のデータベースを更新できます。

Summary of SQL Database Projects containing pre-deployment and post-deployment scripts as well as database objects.

拡張機能の特徴

SQL Database Projects 拡張機能には、次の機能があります。

  • 空のプロジェクトを新しく作成します。
  • 接続されたデータベースから新しいプロジェクトを作成します。
  • Azure Data Studio、Visual Studio Code、または SQL Server Data Tools で以前に作成されたプロジェクトを開きます。
  • プロジェクトでオブジェクト (テーブル、ビュー、ストアド プロシージャ)、またはカスタム スクリプトを追加または削除してプロジェクトを編集します。
  • フォルダー内のファイルまたはスクリプトを整理します。
  • システム データベースまたはユーザー dacpac への参照を追加します。
  • 1 つのプロジェクトをビルドします。
  • 1 つのプロジェクトを展開します。
  • デプロイ プロファイルから接続の詳細 (SQL Windows 認証) と SQLCMD 変数を読み込みます。

SQL Database Projects 拡張機能の次の機能は現在プレビュー段階です。

  • OpenAPI 仕様ファイルから新しいプロジェクトを作成します。
  • SDK スタイルの SQL プロジェクト (Microsoft.Build.Sql)。

Azure Data Studio での SQL Database Projects 拡張機能の概要については、次の 10 分間の短いビデオをご覧ください。

インストール

SQL Database Project 拡張機能は、Azure Data Studio と Visual Studio Code にインストールできます。

Azure Data Studio

Azure Data Studio に SQL Database Project 拡張機能をインストールするには、次の手順に従います。

  1. 拡張機能マネージャーを開いて、使用可能な拡張機能にアクセスします。 そのためには、拡張機能アイコンを選択するか、 [表示] メニューの [拡張機能] を選択します。

  2. 拡張機能の検索ボックスに名前の一部または全部を入力して、"SQL Database プロジェクト" の拡張機能を特定します。 使用可能な拡張機能を選択すると、その詳細が表示されます。

    Screenshot of Azure Data Studio, Install extension.

  3. 必要な拡張機能を選択してインストールします。

  4. [再読み込み] を選択して拡張機能を有効にします (拡張機能を初めてインストールするときにのみ必要です)。

  5. アクティビティ バーから [プロジェクト] アイコンを選択します。

注意

  • すべての機能を使用するには、SQL Database プロジェクトの拡張機能と共に Schema Compare の拡張機能をインストールすることをお勧めします。

Visual Studio Code

SQL Database プロジェクトの拡張機能は、Visual Studio Code 用のmssql 拡張機能と共にインストールされます。

依存関係

SQL Database Projects 拡張機能は、.NET SDK (必須) と AutoRest.Sql (省略可能) に依存しています。

.NET SDK

プロジェクトのビルド機能には .NET SDK が必要であり、拡張機能でサポートされているバージョンを検出できない場合は、.NET SDK のインストールを求めるダイアログが表示されます。 Windows、macOS、Linux 用の .NET SDK をダウンロードしてインストールできます。

.NET SDK の現在インストールされているバージョンを確認する場合は、ターミナルを開き、次のコマンドを実行します。

dotnet --list-sdks

.NET SDK をインストールすると、環境で SQL Database Projects 拡張機能を使用できるようになります。

一般的な問題

ソースの一覧に Nuget.org がないと、次のようなエラー メッセージが表示されることがあります。

  • error MSB4236: The SDK 'Microsoft.Build.Sql/0.1.9-preview' specified could not be found.
  • Unable to find package Microsoft.Build.Sql. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages

nuget.org がソースとして登録されているかどうかを調べるには、コマンド ラインから dotnet nuget list source を実行し、nuget.org を参照している [Enabled] 項目の結果を確認します。nuget.org がソースとして登録されていない場合は、dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org を実行します。

サポートされていない .NET SDK バージョンでは、次のようなエラー メッセージが発生する可能性があります。

  • error MSB4018: The "SqlBuildTask" task failed unexpectedly.
  • error MSB4018: System.TypeInitializationException: The type initializer for 'SqlSchemaModelStaticState' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. [c:\Users\ .sqlproj]_ (リンクされた存在しないファイルに、一致しない閉じ角かっこがある場合)

複数のバージョンがインストールされている場合に、.NET SDK の v6.x バージョンが SQL Database Projects 拡張機能で使われるようにするには、SQL プロジェクトを含むフォルダーに global.json ファイルを追加します。

AutoRest.Sql

OpenAPI 仕様ファイルから SQL プロジェクトが生成される場合は、AutoRest 用の SQL 拡張機能が自動的にダウンロードされ、SQL Database プロジェクトの拡張機能によって使用されます。

制限事項

現在、SQL Database プロジェクト拡張機能には次の制限があります。

  • タスク (ビルド、または発行) はユーザー定義ではありません。
  • プロジェクト内の SQLCLR オブジェクトはサポートされていません。
  • 現時点では、プロジェクトでのコード分析ルールはサポートされていません。

ワークスペース

SQL データベース プロジェクトは、Azure Data Studio および Visual Studio Code の論理ワークスペース内に含まれています。 ワークスペースによって、[エクスプローラー] ウィンドウに表示するフォルダーが管理されます。 現在のワークスペースで開かれているフォルダー内の SQL プロジェクトはすべて、既定では SQL Database プロジェクト ビューに表示されます。

[プロジェクト] ウィンドウのインターフェイスを使用して、ワークスペースにプロジェクトを手動で追加および削除できます。 ただし、ワークスペースの設定は、必要に応じて .code-workspace ファイルで手動で編集できます。

次の .code-workspace ファイルの例では、folders 配列は [Explorer] ペインに含まれるすべてのフォルダーを一覧表示し、settings 内の dataworkspace.excludedProjects 配列は [プロジェクト] ペインから除外されるすべての SQL プロジェクトを一覧表示します。

{
	"folders": [
		{
			"path": "."
		},
		{
			"name": "WideWorldImportersDW",
			"path": "..\\WideWorldImportersDW"
		}
	],
	"settings": {
		"dataworkspace.excludedProjects": [
			"AdventureWorksLT.sqlproj"
		]
	}
}

次のステップ