SQL Database プロジェクトの拡張機能 (プレビュー)

SQL Database プロジェクト拡張機能 (プレビュー) は、SQL Server、Azure SQL Database、Azure SQL Managed Instance などの SQL Database をプロジェクトベースの開発環境で開発するための Azure Data Studio および Visual Studio Code の拡張機能です。 SQL プロジェクトは、テーブル、ストアド プロシージャ、関数など、単一データベースのスキーマを構成する SQL オブジェクトをローカルで表現したものです。

拡張機能の特徴

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

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

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 プロジェクト" の拡張機能を特定します。 使用可能な拡張機能を選択すると、その詳細が表示されます。

    Azure Data Studio の拡張機能をインストールしているところのスクリーンショット。

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

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

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

注意

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

Visual Studio Code

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

依存関係

SQL Database プロジェクト拡張機能は、.NET Core SDK と AutoRest.Sql に依存関係があります。

.NET Core SDK

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

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

dotnet --list-sdks

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

サポートされていない .NET Core 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]_ (リンクされた存在しないファイルに、一致しない閉じ角かっこがある場合)

AutoRest.Sql

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

制限事項

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

  • 現在、Azure Data Studio で、ファイルをリンクとして読み込むことはサポートされていませんが、ファイルはツリーの最上位に読み込まれ、ビルドには、これらのファイルが期待どおりに組み込まれます。
  • プロジェクトの SQLCLR オブジェクトは、DacFx の .NET Core バージョンではサポートされていません。
  • タスク (ビルド、または発行) はユーザー定義ではありません。
  • DacFx によって定義されたターゲットを発行します。
  • WSL 環境のサポートは制限されています。

ワークスペース

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"
		]
	}
}

次のステップ