次の方法で共有


SQL プロジェクトのツール

SQL プロジェクトのツールは、いくつかの開発環境とコマンド ライン インターフェイスで使用できます。 SQL プロジェクトの主なツールは、 SqlPackage コマンド ライン ユーティリティ、Visual Studio の SQL Server Data Tools (SSDT)、および Visual Studio Code 用 の SQL Database Projects 拡張機能 です。

この記事に含まれるツール:

グラフィカル ツール

これらのツールは、SQL プロジェクト、T-SQL エディター、ビルドおよび発行プロセスのグラフィカル インターフェイスを提供します。

SQL Database Projects 拡張機能 は、 VS Code の拡張機能です。 この拡張機能は、SQL プロジェクト、T-SQL エディター、ビルドおよび発行プロセスのグラフィカル インターフェイスを提供します。 この拡張機能は、同じ機能を備えた Azure Data Studio でも使用できます。

SQL Server Data Tools (SSDT) は、SQL プロジェクトのグラフィカル インターフェイスを提供する Visual Studio コンポーネントです。 SSDT には、テーブル用のビジュアル デザイナー、T-SQL エディター、ビルドおよび発行プロセスが用意されています。

機能セットの比較

機能 VS Code SSDT (VS2022-2026) SDK スタイルの SSDT、プレビュー (VS2022)
新しい空のプロジェクトを作成する イエス イエス イエス
既存のデータベースから新しいプロジェクトを作成する イエス イエス イエス
既存の Microsoft.Build.Sql プロジェクトを開く イエス いいえ イエス
ソリューションの管理と操作 いいえ イエス イエス
プロジェクトの実行ビルド イエス イエス イエス
プロジェクトを既存のサーバーに発行する イエス イエス イエス
プロジェクトをローカル開発インスタンスに発行する Yes1 はい2 はい2
発行オプション/プロパティ イエス イエス イエス
ターゲット プラットフォームを更新できる イエス イエス イエス
SQLCMD 変数 イエス イエス イエス
プロジェクト参照 イエス イエス イエス
Dacpac 参照 イエス イエス イエス
パッケージ参照 イエス いいえ いいえ
発行プロファイル作成 イエス イエス イエス
SQL ファイルはプロジェクト フォルダーに配置すると追加できる イエス いいえ イエス
SQL ファイルをビルドから除外できる イエス イエス いいえ
配置前/配置後スクリプト イエス イエス イエス
新しいオブジェクト テンプレート はい3 イエス はい3
プロジェクト ファイルをフォルダーに整理できる イエス イエス イエス
スキーマ比較プロジェクトからデータベースへ イエス イエス イエス
スキーマ比較データベースからプロジェクトへ イエス イエス いいえ
グラフィカル テーブル デザイナー いいえ イエス イエス
コード分析 – ルール GUI の有効化/無効化 いいえ イエス いいえ
プロジェクト プロパティ - ビルド出力の設定 いいえ イエス イエス
プロジェクトのプロパティ – データベース設定 GUI いいえ イエス いいえ
プロジェクト実行 コード分析 イエス イエス いいえ
オブジェクトの名前変更とリファクタリング いいえ イエス いいえ
プロジェクトモデルからのデータベースファイルに Intellisense が提供されます いいえ イエス いいえ
  1. ローカル開発インスタンスは SQL Server コンテナーです。
  2. ローカル開発インスタンスは、SQL Server LocalDB インスタンスです。
  3. 使用できるテンプレートのサブセットは限定されています

コマンド ライン ツール

SqlPackage は DacFx ライブラリの主要なコマンド ライン ユーティリティであり、.dacpac をデータベースにデプロイしたり、データベースのオブジェクトを SQL プロジェクトや .dacpac に抽出したりするなどのデータべース開発タスクの自動化を可能にします。

DacFx .NET ライブラリを使用してカスタム コンソール アプリケーションを構築し、データベース開発タスクを自動化できます。 Microsoft.SqlServer.Dac 名前空間には、データベース オブジェクトを作成、デプロイ、および抽出するためのクラスが含まれており、DacFx ライブラリの残りの部分の基礎となります。

CI/CD パイプラインは、コマンド ラインの実行、または .dacpac および SQL プロジェクトのデプロイに固有のタスクを使用して構築できます。 タスクの例としては GitHub sql-action や Azure DevOps の SqlAzureDacpacDeployment が挙げられますが、これらのタスクでは管理レイヤーの下にある SqlPackage が使用されるため、データベースの変更のデプロイが容易になります。

変換ツール

既存の SQL プロジェクトを SDK スタイルのプロジェクトに変換するプロセスは、新しい SDK スタイルのプロジェクト形式を含むように.sqlproj ファイルを手動で編集することによって行われます。 プロセスを開始する前に、プロジェクト ファイルをバックアップし、プロジェクトの .dacpac をアーカイブすることをお勧めします。 プロジェクトからビルドされた "before" と "after" .dacpac を比較することで、変換プロセスが正しく完了していることを確認できます。

プロジェクト/ソリューション管理

複数の SQL プロジェクト (およびその他のプロジェクト) をソリューション ファイルに論理的にグループ化できます。 ソリューション ファイルは 1 つ以上のプロジェクトのコンテナーであり、ビルド アクションを含むグループとしてプロジェクトを管理するために使用されます。 大規模なソリューションを小さなソリューションに分割してパフォーマンスと管理性を向上させたり、手元の適切なタスクに合わせて動的に生成したりできます。 slngen ソリューション ファイル ジェネレーターは Microsoft.Build.Sql プロジェクトで使用でき、プログラムとオンデマンドで一連のプロジェクトのソリューション ファイルを作成するために使用できます。

サードパーティ製のツール

SQL プロジェクトとデータベースのデプロイに関連する機能を提供するサード パーティ製のツールを使用できます。 dbatools など、一部のツールはオープンソースです。

開発者は、SQL プロジェクトに関する拡張ポイントを活用して、コード分析や展開プランのカスタマイズなど、さまざまなプロジェクトを共有しています。 これらのプロジェクトの一部を次に示します。