当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Tab_Station_AllInfo' 中的标识列插入显式值。
除了用 SET IDENTITY_INSERT dbo.Tab_Station_AllInfo OFF 方法外,还有没有其它方法,最好是操作代码的方法,因为SQL语句已经封装好了。
想往标识列插入数据,只有两个办法:一是取消标识列,二是临时设置为可插入(set identity_insert)
如果你是要经常插入,可能需要考虑一下,这个标识列是不是设置的有问题?如果你需要指定值给这一列,最好不要设置为标识列
1. 运行“SET IDENTITY_INSERT Tab_Station_AllInfo ON”(C#/ADO.NET)
2. 运行封装好的SQL
3. 运行“SET IDENTITY_INSERT Tab_Station_AllInfo OFF”(C#/ADO.NET)
标识列由数据库自动维护,组织insert语句时,不要包含标识列。
我找到原因了,是我调用别人将实体对象的属性值转化为Hashtable对应的键值时,里面多了“hash.Add("ID", Info.ID);”,只要去掉这个就行了。哎,让我纠结了很久。但是还是谢谢大家的热心