如何显式向一个IDENTITY列插入值

 我们平时定义一个表,一般会定义一个拥有IDENTITY属性的列,这个列会根据一个数字种子值和增量值自动增加,这个列通常也定为主键,不具备任何业务意义,只是在表中确保唯一性。我们用一般的Insert 语句插入一表行时,如果为拥有IDENTITY属性的列值指定值,会返回一个错误,不允许你显式地为标识列插入一个值。如果有时候我们意外删除了一行,需要重建这行,并且重建行的拥有IDENTITY属性的列值也要恢复为原始值,这个时候就需要显式地把一个数值插入到一个具有IDENTITY属性的列中,那也就必须使用SET IDENTITY _INSERT命令。
SET IDENTITY _INSERT 命令的语法如下
SET IDENTITY _INSERT [database_name.[schema_name].]table{ON|OFF}
下面对命令的参数进行简单说明
 [database_name.[schema_name].]table 可选的数据库名,可选的架构名和必须的表名。
ON|OFF 设置成ON表示运行显式为这个表的IDENTITY列插入值,OFF表示不允许。
示例:
假如一个表Student拥有三个列,ID,Name,Age,其中ID拥有IDENTITY属性,则要显式插入ID值,如下所示:
SET IDENTITY _INSERT Student ON
INSERT INTO (ID,Name,Age)values(10,'aryang',26)
SET IDENTITY _INSERT Student OFF

posted on 2009-08-25 09:45  边写边唱  阅读(472)  评论(2编辑  收藏  举报

导航