如何将数据插入两个表,而一个依赖于其他的主键

时间:2011-07-07 08:05:53

标签: tsql sql-server-2008

我不是SQL专家,只知道一些基本的基础知识,但我需要将我的LINQ代码重构为SPROC以获得更好的性能,并且我有这种情况。 我有两个表Threads和Posts。

当我创建Thread时,我还需要创建帖子。它是一对多关系(一个Thread可能有很多帖子)。但是在创建线程时我无法知道ID线程会有什么因为它是自动生成的身份。

我认为云只是先创建线程然后选择最后添加的线程,但我怎么能确定它将是我想要的线程?

3 个答案:

答案 0 :(得分:4)

SELECT SCOPE_IDENTITY()

阅读以下文章@@IDENTITY vs SCOPE_IDENTITY() vs IDENT_CURRENT – Retrieve Last Inserted Identity of Record以获取详细说明。

答案 1 :(得分:4)

您可以在第一次INSERT后调用SCOPE_IDENTITY()。它将获得生成的最后一个Identity值。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms190315.aspx

答案 2 :(得分:0)

为什么不能使用触发器。在插入触发器中创建线程后,您可以创建一个帖子条目。