如何为SQL中的每一行创建一个循环?

Rod*_*uza 0 sql sql-server

我有3个表(Users,CourseUsers并且Courses其表示分配给单个用户的课程).

我想创建一个程序,一旦我创建一个新课程,就会将此课程分配给每个用户.我在这里看到的是一个For循环遍历每个用户在CourseUsers表中插入一个新行

如何在SQL中创建循环?

Mar*_*ith 6

你不需要循环.

DECLARE @CourseId INT;

INSERT INTO Courses(Name) VALUES('Some Course');

SET @CourseId  = SCOPE_IDENTITY();

INSERT INTO CourseUsers(UserId, CourseId)
SELECT UserId, @CourseId
FROM Users;
Run Code Online (Sandbox Code Playgroud)

  • @RodrigoAlves每个用户将插入1行.因此它已经在做你所指的重复. (3认同)
  • @RodrigoAlves - 你不需要.`SELECT FROM Users`就是这么做的. (2认同)