小编典典

为什么我不能在BEGIN END块中创建视图

sql

此代码不起作用,返回错误:

BEGIN
  CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy
END
GO`

Incorrect syntax near the keyword 'VIEW'.

为什么?

笔记:

  • GO语句的出现似乎没有什么区别

  • 内部语句在代码块定界符之外可以正常工作。

  • 这是一个较大查询的一部分,但正像此处介绍的那样经过单独测试。


阅读 156

收藏
2021-03-17

共1个答案

小编典典

这是因为CREATE VIEW必须是此MSDN参考中描述的批处理中的第一条语句。

相反,您可以这样做:

.....
    BEGIN 
        EXECUTE('CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy')
    END
2021-03-17