sql - 为什么我不能在 BEGIN ... END block 内创建 View

标签 sql sql-server

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

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

Incorrect syntax near the keyword 'VIEW'.

为什么?

注释:

  • GO 语句的存在 似乎没有什么区别

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

  • 这是一个更大查询的一部分,但是 单独测试 在此介绍。

最佳答案

这是因为 CREATE VIEW 必须是批处理中的第一个语句,如 this MSDN reference 中所述。 .

相反,你可以这样做: 例如

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

关于sql - 为什么我不能在 BEGIN ... END block 内创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133982/

相关文章:

mysql - 树输出mysql

c# - 如何为我的应用程序构建搜索机制?

sql-server - 插入、更新、删除触发器

sql - 在这个demo中,我应该在每一列上创建一个索引还是只创建一个非聚集索引(Index Scan、Seek)

php - 使用php mysql按半径搜索经纬度数据库

php - 使用逗号分隔字符串的搜索列

SQL:在一条语句中插入多组值?

sql - 我如何连接我的数据集中的字段?

mysql - 重复和无序的数字

php - 订购 mysql 查询?