SQL Server のビューを変更・削除する

SQL Server のビューを変更・削除する

全回 「 SQL Server のビューを作成する 」 では、スクリプトでユーザー定義ビューを作成し、ビューからデータを取得しました。

今回は、全回作ったユーザー定義のビュー viewTestResult を変更して確認し、最後に削除してみましょう。

こちら のスクリプトを実行して、テーブルを再生成しておいてください。 全てのテーブルは使いませんが、これらのテーブルが存在している前提で進めます。


ユーザー定義ビューの変更

ユーザー定義ビューを作成するには ALTER VIEW を使います。 シンプルなユーザー定義のビューを変更する構文は次の通りです。

※ SQL Server 2008 より前のバージョンでは使えませんので、その場合はビューを一旦削除して再作成してください。

ALTER VIEW [ ビュー名 ]
AS
	[ SELECT ステートメント ]

CREATE が ALTER になっただけで、CREATE の定義と同じです。

それでは、ユーザー定義のビュー viewTestResult を変更してみましょう。

スクリプトを別でソース管理しているのでなければ、既存のビューを変更する時は、データベースに保存されているものを元に変更することも多いかと思います。

生成したユーザー定義のビューは、SQL Server Management Studio のビューの箇所で見つけることができます。

SQL Server のビューを変更・削除する 1

変更したいユーザー定義のビューを選んで、右クリックで以下のようにすると、 ALTER VIEW のステートメントをクエリー画面に出力することができます。

SQL Server のビューを変更・削除する 2

SQL Server のビューを変更・削除する 3


viewTestResult のカラムに、学生の誕生日 (Student テーブルの Birthday カラム)も追加してみましょう。

ALTER VIEW [dbo].[viewTestResult]
AS
    SELECT  TR.TestResultID,
            T.TestID,
            T.TestNameEn,
            T.TestNameJp,
            S.StudentID,
            S.FirstName,
            S.LastName,
            S.Birthday,
            TR.Score
    FROM    TestResult AS TR
                LEFT JOIN Test AS T
                    ON TR.TestID = T.TestID
                LEFT JOIN Student AS S
                    ON TR.StudentID = S.StudentID;

SQL Server のビューを変更・削除する 4

上記のスクリプトを実行すると、ユーザー定義ビューの viewTestResult が変更されます。


それでは、viewTestResult が変更されたか確認してみましょう。

例えば、viewTestResult ビューから、誕生日が 1979 年以前の学生のデータを取得するクエリーは以下の通りです。

SELECT  *
FROM    viewTestResult
WHERE   YEAR(Birthday) <= 1979;

[ 実行結果 ]
SQL Server のビューを変更・削除する 5

Birthday も取得できていますね。


ユーザー定義ビューの削除

ストアドプロシージャを削除するには DROP VIEW を使います。

DROP VIEW [ ビュー名 ];

それでは、次のスクリプトを実行して、 viewTestResult を削除してみましょう。

DROP VIEW viewTestResult;

SQL Server のビューを変更・削除する 6
SQL Server のビューを変更・削除する 7

viewTestResult が削除されました。

© 2010-2024 SQL Server 入門