在架构内创建多个视图 - SQL Server

Bud*_*hiP 2 t-sql sql-server view sql-server-2008-r2

如何在CREATE SCHEMA语句中创建多个视图?

我想SCHEMA在同一个语句中创建一个,并在其中创建两个视图,所以所有这些语句都作为一个单元工作?成功或失败!

来自MSDN:http://msdn.microsoft.com/en-us/library/ms189462.aspx

"CREATE SCHEMA可以创建一个模式,它包含的表和视图,以及单个语句中任何安全的GRANT,REVOKE或DENY权限.CREATE SCHEMA事务是原子的.如果在执行CREATE SCHEMA语句期间发生任何错误,没有创建指定的securables,也没有授予任何权限."

,

我怎样才能做到这一点?我试过这个:

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
Run Code Online (Sandbox Code Playgroud)

如果我GO在第一次创建视图后立即包含一个语句,那么脚本会运行,但第二个视图VIEW2是在dbo模式下创建的,而不是在下面MYSCHEMA,也不是作为单个单元运行.

如果我GO在第一个视图后删除它,那么它会出错

CREATE VIEW必须是批次的第一个语句

对于第二个CREATE VIEW声明.

如何解决这个问题并将两个视图作为CREATE SCHEMA声明的一部分创建?

kgu*_*u87 5

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
Run Code Online (Sandbox Code Playgroud)