日期:2014-05-17  浏览次数:20921 次

请问,向数据库提交更新时,标识列是怎么处理的?
在DataTable中增加了一行,标识列,ID列传的null值,意味着会使用递增值
在提交更新时,INSERT语句中,给源表的ID列也是赋予的NULL值,
但执行报错,说:仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'雇员表'中的标识列指定显式值。

INSERT语句中我传的是NULL值,为什么还报错呢?
向数据库提交更新时,标识列是怎么处理的?

------解决方案--------------------
加入 ID为标志列. name 为普通列.

 insert into table(name) values ("Name");

 自增列不需要处理
------解决方案--------------------
加入 -> 假如
------解决方案--------------------
IDENTITY_INSERT 没有开启,是不能给标识列显示的传值,你可以不传值该列,数据库会自动处理

再者,数据库如果有标识列,貌似DataTable中也无需刻意指定标识
------解决方案--------------------
探讨
引用:

加入 ID为标志列. name 为普通列.

insert into table(name) values ("Name");

自增列不需要处理

我说的不是SQL Server中,而是ADO.NET中

------解决方案--------------------
先搞清楚Ado.NET是用来干嘛的