这可能是一个初学者问题,但我并不熟悉 SQL Server 中 INSERT
的 OUTPUT
子句的工作原理。
问题
我正在向一个表中插入值,并希望为该操作生成一个唯一的 ID。之前,我使用以下代码来生成唯一的 ID:
select top 1 id
from [dbo].[TEP_Payments_Table]
order by id desc + 1
问题在于,如果同时使用表单的用户可能会有重复的id。
解决方案
通过大量研究,我发现了Output Inserted
可以解决这个问题。
为此,我创建了以下表格:
TEP_ReceiptID
- 其中列ReceiptID
是id列和主键。
然后,我尝试将"Output Inserted"插入到我的通常插入语句中,代码如下:
INSERT INTO [dbo].[TEP_Payments_Table] ([col1], [col2])
VALUES
OUTPUT inserted.ID INTO dbo.TEP_ReceiptID
('testval1', 'testval2')
令我失望的是,这并没有起作用。再次说明我的错,因为我不熟悉这个Output
语法。
如果您能告诉我我哪里出错了,我将不胜感激。