Теперь вы можете просто заменить оператор CASE, который вы пытаетесь выполнить, на следующие INSERT INTO .. SELECT
операторы:
DECLARE @ApplicableUsersWithCourse TABLE (UserID BIGINT, CourseID BIGINT)
INSERT INTO @ApplicableUsersWithCourse
SELECT UM.UserID, CAE.CourseID
FROM TRC_UserMaster UM JOIN @CoursesAboutToExpire CAE ON UM.CourseID = CAE.CourseID
WHERE CAE.IsApplicableToAllInternalUser = 1
INSERT INTO @ApplicableUsersWithCourse
SELECT CAP.UserID, CAP.CourseID
FROM CMS_CourseApplicabilityParameters CAP JOIN @CoursesAboutToExpire CAE ON CAP.CourseID=CAE.CourseID
WHERE CAE.IsApplicableToAllInternalUser = 0
Сначала вы можете протестировать записи, которые вы собираетесь вставить, просто выполнив *Сначала 1005 * заявлений.Если все выглядит хорошо, вы можете вставить записи.
Это также можно записать следующим образом:
INSERT INTO @ApplicableUsersWithCourse
SELECT UM.UserID, CAE.CourseID
FROM TRC_UserMaster UM JOIN @CoursesAboutToExpire CAE ON UM.CourseID = CAE.CourseID
WHERE CAE.IsApplicableToAllInternalUser = 1
UNION ALL
SELECT CAP.UserID, CAP.CourseID
FROM CMS_CourseApplicabilityParameters CAP JOIN @CoursesAboutToExpire CAE ON CAP.CourseID=CAE.CourseID
WHERE CAE.IsApplicableToAllInternalUser = 0