IDENTITYINSERT 如何设置?简单几步快速完成配置!

吉云

今儿个,咱来聊聊我在捣鼓数据库时遇到的一个小插曲——“IDENTITY_INSERT”。

话说那天,我正埋头给一个叫“OrderList”的表灌数据。这表里有个“OrderID”列,它是自增的,按理说我不用管它,数据库自己会给它分配个号。可我这批数据有点特殊,"OrderID"已经有指定的值,我得按着这个值来,不能让数据库瞎搞。

我一开始没多想,直接写个INSERT语句就往里怼,结果数据库“啪”的一下给我报个错,说啥“当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值”。

IDENTITYINSERT 如何设置?简单几步快速完成配置!

我这暴脾气,你个数据库还挺倔!我就去网上搜,看看这是咋回事。一搜才知道,原来SQL Server这家伙,为防止你乱搞自增列,默认是不让你自己插值的。要想插,你得先跟它打个招呼,说一声“我要开始!”。

这“打招呼”的方式,就是用SET IDENTITY_INSERT这个命令。

具体咋操作?

我先给数据库发个话:

SET IDENTITY_INSERT OrderList ON;

这意思就是告诉数据库,我要对“OrderList”这个表下手,你把那个自增列的限制先给我解除。

IDENTITYINSERT 如何设置?简单几步快速完成配置!

然后,我就把我那带着指定“OrderID”的INSERT语句又执行一遍,这回顺溜,数据“唰唰”地就进去。

完事儿之后,我还得把这限制给它恢复,不然以后再插数据,数据库还以为我要自己指定值。于是我又发个话:

SET IDENTITY_INSERT OrderList OFF;

这就好比用完人家东西,得给人放回原位,是个好习惯。

这回我干

    IDENTITYINSERT 如何设置?简单几步快速完成配置!

  • 我想往自增列里插指定的值。
  • 数据库不让,因为它默认关着“IDENTITY_INSERT”。
  • 我用SET IDENTITY_INSERT OrderList ON;打开这个设置。
  • 我把数据插进去。
  • 我用SET IDENTITY_INSERT OrderList OFF;关上这个设置。

IDENTITYINSERT 如何设置?简单几步快速完成配置!

整个过程就像跟数据库“掰腕子”,你得先让它松松劲,才能按你的想法来。这事儿也让我明白一个道理:跟机器打交道,有时候你得顺着它的脾气来,不能硬碰硬。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]