📅  最后修改于: 2023-12-03 15:36:20.610000             🧑  作者: Mango
在关系型数据库中,从表插入是指在一个表中插入一条数据,同时需要在另一个相关的表中插入相应的数据。在 T-SQL 中,可以使用 OUTPUT 子句来实现从表插入操作。
假设有两个表,一个是学生表(Student),另一个是成绩表(Score)。学生表的主键是学生编号(StudentID),成绩表的外键是学生编号(StudentID)。当向学生表中插入一条学生数据时,如果同时需要向成绩表中插入相应的数据,可以使用以下 T-SQL 语句:
DECLARE @Student TABLE (ID INT, StudentID INT, Name NVARCHAR(50))
DECLARE @Score TABLE (ID INT, StudentID INT, CourseName NVARCHAR(50), Score INT)
INSERT INTO Student (Name)
OUTPUT INSERTED.ID, INSERTED.StudentID, INSERTED.Name INTO @Student
VALUES ('张三')
INSERT INTO Score (StudentID, CourseName, Score)
OUTPUT INSERTED.ID, INSERTED.StudentID, INSERTED.CourseName, INSERTED.Score INTO @Score
SELECT ID, StudentID, '语文', 80 FROM @Student
这段 T-SQL 代码中,先定义两个临时表 @Student 和 @Score,用于存储插入数据后的结果集。然后在向学生表中插入一条数据时,使用 OUTPUT 子句将插入数据的结果集输出到 @Student 表中。接着使用 INSERT INTO SELECT 语句向成绩表中插入数据,其中 SELECT 语句从 @Student 表中取出对应的学生编号及其他需要插入的数据。
从表插入是一个非常常见的操作,在 T-SQL 中使用 OUTPUT 子句可以方便地实现该功能。需要注意的是,使用 OUTPUT 子句时需要定义一个临时表用于保存插入数据的结果集。