处理主键 - 外键表插入?

时间:2013-01-02 13:52:55

标签: database foreign-keys relational-database primary-key

假设我有两个表(主键 - >外键),其中主键表中的一个记录对应于外键中的许多记录,所以如果我想为两个表创建插入页面(例如使用ASP.NET)主键表和外键表,如何获取主键值将其插入外键表? (通常我拿最大(PK),但我很想找到更好的解决方案)

1 个答案:

答案 0 :(得分:0)

我假设您使用的是SQL Server,因为您提到使用ASP.NET。在多用户系统中使用Max(PK)不是一个好主意,因为最终你最终会得到一个不正确的主键值。还有一些资源问题需要考虑。一般来说,应该避免这种方法。

有几种方法可以完成您想要做的事情。一种方法是通过存储过程进行插入。用于创建主键行的存储过程将返回新行的Id值,然后可以使用该值插入外键行。但是不要使用Max(PK Value)。使用SCOPE_IDENTITY()值。这假设您正在为PK值使用Identity类型。你没有说明你实际使用的是什么。