我有这样的情况:
Declare @studentId INT = 12;
INSERT INTO someTable (col1, col2)
SELECT @studentId, someValueForCol2 from anotherTable where isActive = 1
studentId变量有10个不同的值。一种方法是手动更改变量的值并执行10次查询,但感觉这不是正确的方法。有没有办法在同一时间为查询提供所有这10个值? 说清楚: 如果select语句返回20条记录而不是数据库中200条插入,则每条studentId记录20条记录。 谢谢
答案 0 :(得分:2)
您可以使用表值构造函数。假设您有两个studentID值为1和2.以下是您可以执行此操作的方法。
SELECT Students.StudentID
, someValueForCol2
from anotherTable
cross join (values(1),(2))Students(StudentID)
where isActive = 1