1934: INSERT/UPDATE failed because the following SET options have incorrect settings(INSERT/UPDATE 失败,因为以下 SET 选项的设置不正确)
SQL Server含义
由于所需的 SET 选项设置不正确,DML 操作(INSERT/UPDATE/DELETE)失败。通常在不满足索引视图、计算列上的索引、筛选索引或空间/XML 索引所必需的 SET 设置时出现。
原因
受影响的表/视图上存在需要特定 SET 选项(尤其是 QUOTED_IDENTIFIER 和 ANSI_NULLS 为 ON、NUMERIC_ROUNDABORT 为 OFF 等)的对象,但会话当前的 SET 选项不满足该要求。旧的客户端驱动或显式设置了错误 SET 选项的脚本会触发此问题。
解决方法
在连接/会话上设置所需选项:SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON; SET ANSI_PADDING ON; SET ANSI_WARNINGS ON; SET CONCAT_NULL_YIELDS_NULL ON; SET ARITHABORT ON; SET NUMERIC_ROUNDABORT OFF; 确保应用驱动在连接时正确发送这些选项。错误消息会列出不正确的选项;修正这些选项。
同一数据库的其他条目
- 5061ALTER DATABASE failed because a lock could not be placed on database(ALTER DATABASE 失败,因为无法在数据库上加锁)
- 3702Cannot drop database because it is currently in use(无法删除数据库,因为它当前正在使用)
- 15138The database principal owns a schema in the database, and cannot be dropped(数据库主体在数据库中拥有架构,无法删除)
- 468Cannot resolve the collation conflict(无法解决排序规则冲突)
- 4864Bulk load data conversion error (type mismatch or invalid character)(大容量加载数据转换错误(类型不匹配或无效字符))
- 916The server principal is not able to access the database under the current security context(服务器主体无法在当前安全上下文中访问数据库)