0
我有一个关于如何检索SQL Server 2005中的列的自动增量或标识值的问题,当所述列不是第一个在表中声明列。当列不是表中的第一个时,检索AutoIncrement键值
我可以通过发出下面的代码得到一个表的生成值:
MyTable newRecord = new MyTable();
newRecord.SomeColumn = 2;
newRecord.Save();
return newRecord.MyIdColumn;
其中一期工程的其他列多少弥补特定表的主键精细regardles,但第一列声明必须是标识列,否则这是行不通的。
我的问题是,我必须将我的代码与其他我无法访问的表集成在一起,并且它们具有的标识列不是这些表中的第一列,所以我想知道是否有适当的解决方法我的问题,或者如果我坚持使用SELECT @@ IDENTITY行手动获取该值?
非常感谢您的帮助!
亚音速不设置由序位的关键 - 如果你正在使用2.2然后保存后SetPrimarykey方法熄灭,并要求其支撑设置模式。所以 - 问题是,“不起作用”是什么意思?你有错误吗? – 2010-01-14 23:54:15
不,完全没有错误。 “不起作用”意味着如果我有一个带有两个int列,col1和col2的表,并且只有col2是identity,那么当我执行.Save()并检查col2的值时,它将返回0刚刚生成的关键值。如果我将col2作为第一列而不是col1,并执行与以前相同的代码,则会正确返回生成的键值。我已经尝试了很多次,它总是给我一致的结果;我必须将我的身份列作为第一列,否则我无法访问我最近插入的记录的键值。 – Fervelas 2010-01-15 03:34:53