Как выбрать, обновить и вставить строки из таблицы в себя?

У меня есть экзаменационная таблица со следующими столбцами

CLASS_EXAM_ID
ID КЛАССА
EXAM_NAME
TermNo
ВЕС
С ДАТЫ
НА СВИДАНИЕ
EXAM_DATE

где CLASS_EXAM_ID это уникальный идентификатор

Я хочу скопировать термин 1 и просто сделать термин 2. У меня есть этот запрос:

INSERT INTO Exam (ExamId, ClassId, Term, TermNo, Weight,Fromdate,Todate,ExamDate)
SELECT 
  'ExamId00001'AS EXPR1, 
  ClassId, 
  'Term 2' AS EXPR2,
  TermNo,
  Weight,
  Fromdate,
  ToDate,
  ExamDate
FROM Exam 
WHERE Term = 'Term 1'

Как я могу изменить ExamId для каждой выбранной строки данных?

1 ответ

Решение

Не понятно как ExamId поле определено в этой таблице. Если это уникальный идентификатор, лучше всего определить его как поле ключа с автоматическим приращением. В этом случае просто используйте следующую инструкцию INSERT без ExamId и SQL Server вставит уникальный идентификатор автоматически.

INSERT INTO Exam (ClassId, Term, TermNo, Weight,Fromdate,Todate,ExamDate)
SELECT 
   ClassId, 
  'Term 2' AS EXPR2,
  TermNo,
  Weight,
  Fromdate,
  ToDate,
  ExamDate
FROM Exam 
WHERE Term = 'Term 1'
Другие вопросы по тегам