如何一次输入多个变量值?

时间:2017-03-28 19:05:14

标签: sql-server

我有这样的情况:

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条记录。 谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用表值构造函数。假设您有两个studentID值为1和2.以下是您可以执行此操作的方法。

SELECT Students.StudentID
    , someValueForCol2 
from anotherTable 
cross join (values(1),(2))Students(StudentID)
where isActive = 1