在向"带有自增字段的数据库表"中插入数据时,自定义"该自增字段"的数据

在设计数据库表的时候,经常会使用自增主键或其他自增字段。比如:

QQ截图20130724155744

DB_UserGroups表中GroupID为该表主键,并为自增字段。

但在将某字段设置自增后,想在插入数据时,人为指定自增字段的数据内容。如:

·

insert into DB_UserGroups values(0,'全部')
·
这时SQL SERVER会提示:

·

消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Northwind.dbo.DB_UserGroups'中的标识列指定显式值。
·
通过提示可以看到,需要将IDENTITY_INSERT设为ON,通过以下语句即可打开:
·
SET IDENTITY_INSERT DB_UserGroups ON
·
但是现在再次执行insert语句的时候,发现仍然是这个错误,后来发现我语文没学好,漏掉了一个条件,就是一开始提到的“仅当使用了列列表”,呃。。。好吧,需要这样写insert语句:
·
insert into DB_UserGroups(GroupID,GroupName) values(0,'全部')
·
恩,把要插入的字段全部在表名后标明,不可以省略,这样就OK了。
如果不需要自定义自增字段数据,可以再次使用:
·
SET IDENTITY_INSERT DB_UserGroups OFF
·
关闭掉IDENTITY_INSERT。
·
PS.标识列的数据一旦添加,不可更改!不过可以先去掉标识列的“是标识”,然后改完再加回来。。。我只能想到这么多了。
posted @   不是豆豆  阅读(5994)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
友情链接:迷途


点击右上角即可分享
微信分享提示