&引用;带复选框选项“;及;TOP";升级到SQL Server 2016时导致错误

&引用;带复选框选项“;及;TOP";升级到SQL Server 2016时导致错误,sql,sql-server,tsql,sql-server-2014,sql-server-2016,Sql,Sql Server,Tsql,Sql Server 2014,Sql Server 2016,在2014年至2016年升级Microsoft SQL Server时,我运行了Microsoft的数据迁移助手,在使用表中的视图时,发现带有复选选项的发生了重大变化 当浏览微软的各种页面寻求帮助时,它们似乎是死胡同。我们目前的兼容版本是120,一个解决方案是将其降级到90;然而,这是不可能的 破译密码是: CREATE VIEW [table] AS SELECT TOP 1000000 [Id], [UserName], [Fir

在2014年至2016年升级Microsoft SQL Server时,我运行了Microsoft的数据迁移助手,在使用表中的视图时,发现带有复选选项的
发生了重大变化

当浏览微软的各种页面寻求帮助时,它们似乎是死胡同。我们目前的兼容版本是120,一个解决方案是将其降级到90;然而,这是不可能的

破译密码是:

CREATE VIEW [table]
AS  
    SELECT TOP 1000000
        [Id],
        [UserName],
        [Firstname]
    FROM 
        [Users] WITH (NOLOCK)
    WITH CHECK OPTION 
GO

有人对此有办法吗?否则,升级到2016版似乎无法工作。

因此,如果您遵循
MSDN
官方文档,您将在“可更新视图”部分注意以下内容:

只要满足以下条件,就可以通过视图修改基础基表的数据:

TOP
在视图的select_语句中的任何位置都不会与带有CHECK选项的
子句一起使用

因此,
SQL Server
团队极有可能将此不可能性作为检查强制执行

强制对视图执行的数据修改语句遵循select_语句中设置的条件


显然,您将无法使用合并后的选项来正常编辑代码,因此答案可能很清楚。

为什么该视图需要该选项?@artm I删除了字段,隐私问题,如果您对此感到困惑的话。