在插入多条记录时,将插入表的范围标识符插入到另一个表中 -相关文档
可以使用SQL Server的OUTPUT子句来实现这个目标。OUTPUT子句可以在insert语句中使用,用于返回已插入行的数据,包括标识符列的值。
示例代码如下:
CREATE TABLE Employee EmpID INT PRIMARY KEY, EmpName VARCHAR(50), Salary DECIMAL(18,2)
CREATE TABLE EmployeeAudit AuditID INT PRIMARY KEY, EmpID INT, EmpName VARCHAR(50), Salary DECIMAL(18,2), AuditDate DATETIME
INSERT INTO Employee (EmpID, EmpName, Salary) OUTPUT inserted.EmpID, inserted.EmpName, inserted.Salary, GETDATE() INTO EmployeeAudit (EmpID, EmpName, Salary, AuditDate) VALUES (101, 'John', 5000), (102, 'Jane', 6000), (103, 'Bob', 7000)
在上面的示例中,我们首先创建了Employee和EmployeeAudit表。然后,我们使用INSERT INTO语句将多个Employee记录插入Employee表中。使用OUTPUT子句,我们将插入表的范围标识符(EmpID)以及其他列插入到EmployeeAudit表中。可以注意到,我们使用GETDATE()函数在EmployeeAudit表中插入了当前日期的值,以便记录审核日期。
最终,我们可以查询EmployeeAudit表,验证是否将插入表的范围标识符正确地插入到了EmployeeAudit表中:
SELECT * FROM EmployeeAudit
结果应该类似于以下内容:
AuditID EmpID EmpName Salary AuditDate 1 101 John 5000 2022-05-01 10:00:00.0000000 2 102 Jane 6000 2022-05-01 10:00:00.0000000 3 103 Bob 7000 2022-05-01