如何在CREATE SCHEMA
语句中创建多个视图?
我想创建一个SCHEMA
,并在同一个语句中创建两个视图,所以所有这些语句都作为一个单元工作?成功或失败!
来自MSDN:http://msdn.microsoft.com/en-us/library/ms189462.aspx
“CREATE SCHEMA可以创建一个模式,它包含的表和视图, 对单个中任何安全设施的授予和授予,拒绝或拒绝权限 声明。 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
如果我在第一次创建视图后包含GO
语句,则会运行脚本,但会在VIEW2
架构下创建第二个视图dbo
,而不是MYSCHEMA
下,也不作为一个单元运行。
如果我在第一个视图后删除GO
,则会出错
CREATE VIEW必须是批次的第一个陈述
表示第二个CREATE VIEW
语句。
如何解决这个问题并将这两个视图作为CREATE SCHEMA
语句的一部分创建?
答案 0 :(得分: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