Используя SQL Server 2016, у меня есть очень простой IF NOT Exists ..... INSERT statement
внутри цикла.Это работает хорошо, как и ожидалось.Есть ли способ определить, какие записи существовали, следовательно, не были вставлены, а какие записи не существовали, поэтому были вставлены без использования второго запроса?
Я могу легко добиться этого, выполнив SELECT, а затем, если не найден, вставляюОднако это два запроса в моем цикле.Я хотел бы попытаться добиться этого в одном запросе, если это возможно?
Цель этого состоит в том, чтобы показать пользователю:
- Крис теперь зарегистрирован на английском языке
- Крис теперь зачислен в математику
- Крис уже зачислен в науку
Таким образом, 1 и 2 не существует, поэтому вставлены.3 существовал, поэтому не вставил
и пример этого цикла для Джона:
for i = 0 to numOfCourses
sql = IF NOT EXISTS (SELECT fieldName from tableName
WHERE courseID = 1 AND directoryID = 2)
BEGIN
INSERT INTO tableName(courseID, directoryID)
VALUES (1, 2)
END
next