背景
我正在使用Excel UI和VB ADODB后端,以便用户可以将数据插入SQL Server。
由于用户可以自由使用任意数量的行(业务需求),因此我最终使用了pyscript3.py
循环来遍历行并逐行插入。
初始代码
FOR
“请求收据ID”列由“ Project_Name”表中的Col6填充。通过查看 For i = 7 To LastRow
Command.CommandText = "INSERT INTO [dbo].[TEP_Payments_Table] ([AA Number], " & _
"[AA Name], [Request Receipt Id])" & _
"VALUES (" & _
"'" & Sheets("Project_Name").Cells(i, 2).Value & "'," & _
"'" & Sheets("Project_Name").Cells(i, 3).Value & "'," & _
"'" & Sheets("Project_Name").Cells(i, 6).Value & "')"
Command.Execute
和TEP_Payments_Table
中的最后一个ID,可以自动填充该数据。
如果多个用户同时使用它,则会导致重复。
我设法锻炼了如何在标准+1
子句中使用OUTPUT INSERTED
用户来为每笔交易生成一个ID;使用以下语法:
INSERT INTO
问题
我不愿意将declare @ids table (id int);
insert into [dbo].[TEP_Payments_Table] ([col1], [col2])
output inserted.id into @ids
values ('testval1', 'testval2');
和declare
添加到output inserted
循环中,因为我不希望它在每一行中都这样做。我希望无论用户插入1行数据还是100行数据都将生成一个id。
这很重要,因为此收据ID将用于跟踪请求的状态。
有什么办法解决这个问题吗?
谢谢