与我的previous question类似,我再次向SO家伙寻求您的集体智慧和帮助。
在存储过程中,通过一些检查后,我需要插入新行并返回为其新创建的ID。检查是否存在行是可行的,所以这是我不确定的问题。
该表有两个重要的列:LocationID和CaseID。 CaseID是自动递增的,因此当您添加一个新的locationid时,它将自动增加。
我目前有这个:
-- previous checks for existance of CaseID
IF @CaseID IS NULL
BEGIN
INSERT INTO
Cases(LocationID)
VALUES
(@LocationID)
-- what now?
END
我当时想立即执行@CaseID = (SELECT blah)
语句,但我想知道是否有更好的方法?有没有更好的办法?你会怎么做?
最佳答案
SELECT @CaseID = SCOPE_IDENTITY()
实际上,您可以这样做(如果那是存储过程的结尾。):
SELECT SCOPE_IDENTITY()
(OUTPUT子句仅在SQL Server 2005及更高版本中可用。)
参考:SCOPE_IDENTITY
关于tsql - 返回刚添加的行的ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/829567/