此代码不起作用内,返回错误:为什么我不能创建一个视图BEGIN ... END块
BEGIN
CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy
END
GO`
Incorrect syntax near the keyword 'VIEW'.
为什么?
注:
GO语句 的存在,似乎没有什么区别
内声明的工作代码块分隔符的罚款之外。
这是一个较大的查询的一部分,但是 单独测试,就像它在此处显示的 一样。
此代码不起作用内,返回错误:为什么我不能创建一个视图BEGIN ... END块
BEGIN
CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy
END
GO`
Incorrect syntax near the keyword 'VIEW'.
为什么?
注:
GO语句 的存在,似乎没有什么区别
内声明的工作代码块分隔符的罚款之外。
这是一个较大的查询的一部分,但是 单独测试,就像它在此处显示的 一样。
这是因为如this MSDN reference中所述,CREATE VIEW必须是批处理中的第一条语句。
取而代之,您可以: 例如
.....
BEGIN
EXECUTE('CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy')
END
我看到了那篇文章,但认为'batch'指的是BEGIN和END之间的代码 - 所以一批代码是GO关键字的唯一分隔符? – 2010-06-28 16:10:33
您可以使用三种方式创建临时视图。
1- AdaTheDev答案。
2-创建临时表,然后在其中插入值,例如create Table #TableName (ID integer)
。 See this Link
3-使用通用表达式[With]。 See this Link
是否有一个原因,你试图把它放在BEGIN ... END块内? – 2010-06-28 16:04:35
其if条款的内容 – 2010-06-28 16:29:15
您希望在什么情况下有条件地创建视图?这听起来像你正在使用视图不正确。 – Gabe 2010-06-28 17:19:37