问题标签 [updatable-views]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
34 浏览

sql-server - 加入时视图的列属性不正确

我有一个表 atbl_UserSetting,其中有一列名称为 ID,它是具有标识和种子/增量的主键。

在此处输入图像描述

普通用户可以通过视图访问此表。这是视图:

现在,当我运行此查询时,它将返回 true (1):

INFORMATION_SCHEMA.COLUMNS 也一样。

但是,如果我将视图更改为此(加入用户表):

列的相同属性返回 false (0)。

这反过来会导致 SqlBuilder 生成带有 ID 列的插入命令,并且当在 SqlAdapter 上调用 Update 时,它​​将失败,因为 IDENTITY_INSERT 设置为 OFF。当视图使用 WHERE 子句而不是加入另一个表时,columnproperty 为 IsIdentity 返回 true(1),并且 SqlBuilder 正确地不包括插入命令中的 ID 列。

所以我的问题是,当其他表加入时,为什么 SQL Server 不能识别视图的列属性“IsIdentity”的正确值?