このチュートリアルでは、SQL Server Management Studio (SSMS) 内にあるさまざまなオブジェクトの Transact-SQL (T-SQL) スクリプトを生成する方法について説明します。 このチュートリアルでは、次のオブジェクトをスクリプト化する方法の例を示します。
- GUI 内でアクションを実行する場合のクエリ
- 2つの異なる方法でのデータベース (スクリプトとして生成する方法とスクリプトを生成する方法)
- 表
- ストアド プロシージャ
- 拡張イベント
オブジェクト エクスプローラーで任意のオブジェクトをスクリプト化するには、オブジェクトを右クリックし、[オブジェクトとしてスクリプト化] オプションを選択します。 このチュートリアルでは、このプロセスについて説明します。
[前提条件]
このチュートリアルを実行するには、SQL Server Management Studio、SQL Server を実行しているサーバーへのアクセス、および AdventureWorks データベースが必要です。
- SQL Server Management Studio をインストールします。
- SQL Server 2017 Developer Edition インストールします。
- AdventureWorks サンプル データベースをダウンロードします。
SSMS でデータベースを復元する手順については、データベースの復元に関するページをご覧ください。
GUI からクエリをスクリプトで実行する
SSMS で GUI を使用してタスクを完了するたびに、タスクに関連付けられている T-SQL コードを生成できます。 次の例は、データベースをバックアップするとき、およびトランザクション ログを圧縮するときにこれを行う方法を示しています。 これらの同じ手順は、GUI を使用して完了した任意のアクションに適用できます。
データベースのバックアップ時に T-SQL をスクリプトする
SQL Server を実行しているサーバーに接続します。
データベース ノードを展開します。
AdventureWorks2022>Tasks>Back Up データベースを右クリックします。
必要な方法でバックアップを構成します。 このチュートリアルでは、すべてが既定のままです。 ただし、ウィンドウで行われた変更もスクリプトに反映されます。
>。
クエリ ウィンドウに入力された T-SQL を確認します。
[ 実行 ] を選択してクエリを実行し、T-SQL 経由でデータベースをバックアップします。
トランザクション ログを圧縮するときに T-SQL をスクリプト化する
データベース AdventureWorks2022>Tasks>Shrink>Files を右クリックします。
[ファイルの種類] ドロップダウン リスト ボックスから [ログ] を選択します。
スクリプトとスクリプト アクションをクリップボードに選択します。
[新しいクエリ] ウィンドウを開き、貼り付けます。 (ウィンドウ内を右クリックします。次に、[ 貼り付け] を選択します)。
[ 実行] を選択してクエリを実行し、トランザクション ログを圧縮します。
スクリプト データベース
次のセクションでは、スクリプトとして オプションと スクリプトの生成 オプションを使用してデータベースをスクリプト化する方法を説明します。 スクリプトとして オプションを使用すると、データベースとその構成オプションが再作成されます。 [スクリプトの生成] オプションを使用して、スキーマとデータ の両方をスクリプト 化できます。 このセクションでは、2 つの新しいデータベースを作成します。 AdventureWorks2022a を作成するには、スクリプト生成 オプションを使用します。 [スクリプトの 生成 ] オプションを使用して 、AdventureWorks2022b を作成します。
[スクリプト] オプションを使用してデータベースをスクリプト化する
SQL Server を実行しているサーバーに接続します。
データベース ノードを展開します。
右クリックして、データベース AdventureWorks2022 を選択し、>データベースのスクリプトを次のように作成>作成先>新しいクエリエディター ウィンドウに保存してください。
ウィンドウでデータベース作成クエリを確認します。
このオプションは、データベース構成オプションのみをスクリプト化します。
キーボードで Ctrl + F キーを押して、[ 検索 ] ダイアログ ボックスを開きます。 下矢印ボタンを選択して、[置換]オプションを開きます。 上部の [検索 ] 行に「AdventureWorks2022」と入力し、下部の [置換] 行に「AdventureWorks2022a」と入力します。
AdventureWorks2022 のすべてのインスタンスを AdventureWorks2022a に置き換えるには、[すべて置換] を選択します。
[ 実行] を選択してクエリを実行し、新しい AdventureWorks2022a データベースを作成します。
[スクリプトの生成] オプションを使用してデータベースをスクリプト化する
SQL Server を実行しているサーバーに接続します。
データベース ノードを展開します。
AdventureWorks2022>Tasks>Generate Scripts を右クリックします。
[説明] ページが開きます。 [ 次へ ] を選択して、[ オブジェクトの選択] ページを開きます。 データベース全体またはデータベース内の特定のオブジェクトを選択できます。 [データベース全体とすべてのデータベース オブジェクトのスクリプトを作成] を選択します。
[次へ] を選択し、 [スクリプト作成オプションの設定] ページを開きます。 ここでは、スクリプトを保存する場所と、いくつかの追加の詳細オプションを構成できます。
ある。 [ 新しいクエリ ウィンドウに保存] を選択します。
b。 [ 詳細設定] を 選択し、次のオプションが設定されていることを確認します。
- [スクリプト統計] が [スクリプト統計] に設定されています。
- スクリプトするデータの種類 は スキーマのみ に設定されています。
- スクリプト インデックスが True に設定 されています。
注
[スクリプト化するデータの種類] オプションで [スキーマ] と [データ ] を選択すると、データベース のデータをスクリプト 化できます。 ただし、これは大規模なデータベースでは理想的ではありません。 SSMS が割り当てることができるよりも多くのメモリが必要になる可能性があります。 この制限は、小規模なデータベースでは問題ありません。 大規模なデータベースのデータを移動する場合は、 インポートおよびエクスポート ウィザードを使用します。
[OK] を選択し、 [次へ] を選択します。
[概要] で [次へ] を選択します。 次に、もう一度 [次へ ] を選択して、[ 新しいクエリ] ウィンドウにスクリプトを生成します。
キーボードで、[ 検索 ] ダイアログ ボックスを開きます (Ctrl + F キー)。 下矢印ボタンを選択して、[置換]オプションを開きます。 上部の [検索 ] 行に「 AdventureWorks2022」と入力します。 下部の [置換 ] 行に「 AdventureWorks2022b」と入力します。
AdventureWorks2022 のすべてのインスタンスを AdventureWorks2022b に置き換えるには、[すべて置換] を選択します。
[ 実行] を選択してクエリを実行し、新しい AdventureWorks2022b データベースを作成します。
スクリプト テーブル
このセクションでは、データベースからテーブルをスクリプトアウトする方法について説明します。 このオプションを使用して、テーブルを作成するか、テーブルを削除して作成します。 このオプションを使用して、テーブルの変更に関連付けられている T-SQL のスクリプトを作成することもできます。 たとえば、それに挿入したり、それを更新したりすることです。 このセクションでは、テーブルを削除してから再作成します。
SQL Server を実行しているサーバーに接続します。
[データベース] ノードを展開します。
AdventureWorks2022 データベース ノードを展開します。
[テーブル] ノードを展開します。
dbo.ErrorLog を右クリックし、>スクリプト テーブルを>DROP および CREATE として>新しいクエリエディターウィンドウに選択します。
[ 実行] を選択してクエリを実行します。 このアクションにより 、Errorlog テーブルが削除され、再作成されます。
注
データベースでは、
AdventureWorks2022
テーブルは既定で空です。 そのため、テーブルを削除してもデータが失われません。 ただし、データがあるテーブルで次の手順を実行すると、データが失われます。
スクリプト ストアド プロシージャ
このセクションでは、ストアド プロシージャを削除して作成する方法について説明します。
SQL Server を実行しているサーバーに接続します。
[データベース] ノードを展開します。
プログラム可能性ノードを展開します。
[ストアド プロシージャ] ノードを展開します。
ストアド プロシージャ dbo.uspGetBillOfMaterials>Script ストアド プロシージャ As>DROP と CREATE To>New クエリ エディター ウィンドウを右クリックします。
拡張イベントのスクリプト作成
このセクションでは、 拡張イベントのスクリプトを作成する方法について説明します。
SQL Server を実行しているサーバーに接続します。
管理ノードを展開します。
拡張イベント ノードを展開します。
[セッション] ノードを展開します。
目的の拡張セッション上で右クリックし、>Script Session As>CREATE To>New クエリ エディター ウィンドウというオプションを選択します。
[新しいクエリ エディター] ウィンドウで、セッションの新しい名前を system_health から system_health2 に変更します。 [ 実行] を選択してクエリを実行します。
オブジェクト エクスプローラーで [セッション] を右クリックします。 [ 最新の情報に更新] を選択して、新しい拡張イベント セッションを表示します。 セッションの横にある緑色のアイコンは、セッションが実行されていることを示します。 赤いアイコンは、セッションが停止したことを示します。
注
セッションを右クリックして [開始] を選択すると、セッションを 開始できます。 ただし、これは既に実行中の system_health セッションのコピーであるため、この手順は省略できます。 拡張イベント セッションのコピーを削除できます。それを右クリックし、[削除] を選択 します。
次のステップ
SSMS に慣れる最善の方法は、実践的な練習を通じて行う方法です。 これらの チュートリアル と ハウツー 記事は、SSMS 内で利用可能なさまざまな機能の使用を手助けします。 これらの記事では、SSMS のコンポーネントを管理する方法と、定期的に使用する機能を見つける方法について説明します。
- インスタンス に接続してクエリを実行する
- SSMSでテンプレートを使用する
- SSMS 構成
- SSMSを使用するための追加のヒントとテクニック