0
点赞
收藏
分享

微信扫一扫

[SQL Server]当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'xxxx' 中的标识列插入显式值

伢赞 2023-11-30 阅读 42

环境

sqlserver2019,ODBC Driver 18 for SQL Server,python 3.11

问题

今天通过python往SQLServer写数据报 [ODBC Driver 18 for SQL Server][SQL Server]当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'xxx' 中的标识列插入显式值。 image.png 在 SQL Server 中,表的标识列(Identity Column)是由系统自动生成的唯一值,用于确保表中的每一行都有一个唯一的标识符。在某些情况下,我们可能需要手动插入一个值到标识列中,这时需要使用 IDENTITY_INSERT 命令来允许插入操作。然而,当 IDENTITY_INSERT 设置为 OFF 时,我们不能为标识列插入任何值,否则会出现错误。

解决

  1. 忽略主键的输入,就是插入时不写主键,由数据库进行主键自动生成
  2. 设置允许写入主键
SET IDENTITY_INSERT table_name ON;

设置完后可写入,在导数据时有用 然后使用完后可手动再开启主键自动生成

SET IDENTITY_INSERT table_name OFF;
举报

相关推荐

0 条评论