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
声明的一部分创建?
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)