我有一个表,并且它具有设置为标识的属性之一。我想获得在向数据库输入值后生成的身份属性的值。在插入到数据库之前获取标识属性值
我有EmpTable由EmpID和EmpName组成。 EmpID被设置为标识。在将新行插入数据库之前,我想获取EmpID值。
我有一个表,并且它具有设置为标识的属性之一。我想获得在向数据库输入值后生成的身份属性的值。在插入到数据库之前获取标识属性值
我有EmpTable由EmpID和EmpName组成。 EmpID被设置为标识。在将新行插入数据库之前,我想获取EmpID值。
我建议不要试图用设置为使用整数列作为主键的表执行此操作。如果您只是获取以前的ID并增加它,您将遇到并发问题。相反,您应该使用GUID(SQL中的uniqueidentifier)作为主键。
这将允许您在代码中生成一个新的GUID,以便在稍后阶段将其安全地保存到数据库中。
http://msdn.microsoft.com/en-us/library/system.guid.newguid.aspx
确保服务器知道在哪里自动增量次数是其序列,但几乎没有什么用处,你可以用这些信息做。想象一下,你去邮局,他们发放编号票,以便他们可以为客户服务。当然,你可以问他们下一个号码是什么,但是因为任何人都可以随时走进来,所以你不知道你会得到那个号码。如果你不知道你会得到它,你无法做任何事情 - 例如,将它作为参考编号写在表单上将是一个错误。
取决于你想要做什么,你的两个主要选择是:
使用客户端生成的GUID作为标识符。这种做法弄乱了订单,所以类比并不是很好,但想象一下,如果每个进来的顾客都能产生一个他们肯定不会使用过的随机数字。他们可以使用它在填写表格之前填写表格。
取一个数字,但在与其他操作的交易中执行。客户可以拿一个号码并用它来填写一些文书工作。如果他们意识到他们把钱留在家里,他们就会把所有东西都扔掉,而你永远不会拨打他们的号码。
为什么你认为你需要这些信息?你可以使用这些策略吗?
您使用哪个数据库?对于SQLServer有http://stackoverflow.com/questions/3923950/is-is-possible-to-get-new-values-for-id-identity-before-inserting-data-in-a-ta?rq= 1 – okrumnow