3

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

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

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

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

,

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

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在第一个视图创建之后包含一个语句,那么脚本会运行,但第二个视图VIEW2是在dbo模式下创建的,而不是在 下MYSCHEMA,并且也不会作为一个单元运行。

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

CREATE VIEW 必须是批处理的第一条语句

对于第二个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 回答