当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'uf_NBBank_lhh' 中的标识列插入显式值
时间: 2025-03-29 18:10:53 浏览: 70
### 如何在 SQL Server 中临时启用 IDENTITY_INSERT
当需要向具有标识属性的列插入显性值时,可以通过 `SET IDENTITY_INSERT` 命令来实现。此命令允许用户暂时覆盖默认行为,在指定的时间范围内手动插入数据到标识列。
以下是具体的操作方法:
#### 启用和禁用 IDENTIY_INSERT 的语法
要启用 `IDENTITY_INSERT` 功能,可以使用以下语句:
```sql
SET IDENTITY_INSERT uf_NBBank_lhh ON;
```
完成插入操作后,应立即将其重新设置为 OFF 以恢复正常的数据库约束机制:
```sql
SET IDENTITY_INSERT uf_NBBank_lhh OFF;
```
需要注意的是,每次只能针对单个表启用该功能,并且只有当前会话有效[^1]。
#### 插入数据的例子
假设目标表名为 `uf_NBBank_lhh` 并有一个自增字段叫 `ID` ,下面是如何执行插入的一个例子:
```sql
-- 开启身份插入选项
SET IDENTITY_INSERT uf_NBBank_lhh ON;
INSERT INTO uf_NBBank_lhh (ID, Name, Amount)
VALUES (101, 'John Doe', 500);
-- 关闭身份插入选项
SET IDENTITY_INSERT uf_NBBank_lhh OFF;
```
上述脚本展示了如何先打开 `IDENTITY_INSERT` 来绕过自动增长限制,接着插入一条记录并再次关闭它。
#### 注意事项
- 只能在一个连接上一次激活一个表上的 `IDENTITY_INSERT` 设置。
- 如果尝试违反这一规则,则会产生错误提示。
- 此外,拥有对该表 ALTER 权限的人才能更改这个选项状态。
---
阅读全文
相关推荐


















