3

CREATE SCHEMAステートメント内に複数のビューを作成するにはどうすればよいですか?

SCHEMAを作成し、同じステートメント内に2つのビューを作成したいので、これらのステートメントはすべて1つのユニットとして機能しますか?一緒に成功するか失敗するか!

MSDNから:http://msdn.microsoft.com/en-us/library/ms189462.aspx

「CREATESCHEMAは、スキーマ、それに含まれるテーブルとビュー、および単一のステートメントで保護可能な任意のスキーマに対するGRANT、REVOKE、またはDENY権限を作成できます。CREATESCHEMAトランザクションはアトミックです。CREATESCHEMAステートメントの実行中にエラーが発生した場合、指定されたセキュリティ保護対象は作成されず、アクセス許可も付与されません。」

これどうやってするの?私はこれを試しました:

CREATE SCHEMA [MYSCHEMA] AUTHORIZATION [dbo]
    CREATE VIEW [VIEW1]
    AS 
        SELECT [ID]
               ,[NAME]
                FROM [dbo].[TABLE1]
        /* Here is the Problem */
        GO

        CREATE VIEW [VIEW2]
        AS
        SELECT [ID]
               ,[NAME]
                FROM [dbo].[TABLE2]
        GO

GO最初のビューの作成直後にステートメントを含めると、スクリプトは実行されますが、2番目のビューは、の下ではなくスキーマのVIEW2下に作成され、単一のユニットとしても実行されません。dboMYSCHEMA

GO最初のビューの後にを削除すると、次のようなエラーが発生します

CREATE VIEWは、バッチの最初のステートメントである必要があります

2番目のCREATE VIEWステートメント。

CREATE SCHEMAこれを解決し、ステートメントの一部として両方のビューを作成するにはどうすればよいですか?

4

1 に答える 1

6
CREATE SCHEMA [MYSCHEMA] AUTHORIZATION [dbo]

CREATE VIEW [VIEW1] AS SELECT [ID], [NAME] FROM [dbo].[TABLE1]
CREATE VIEW [VIEW2] AS SELECT [ID], [NAME] FROM [dbo].[TABLE2]
GO
于 2012-12-09T13:11:20.807 に答える