如何从表中选择,更新和插入行到自身?

时间:2016-11-30 15:54:51

标签: sql tsql sql-server-2008-r2 unique-id

我有一个包含以下专栏的考试表

CLASS_EXAM_ID
CLASS_ID
EXAM_NAME
TermNo
WEIGHT
FROM_DATE
TO_DATE
EXAM_DATE

其中CLASS_EXAM_ID是唯一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 个答案:

答案 0 :(得分:1)

目前尚不清楚此表中如何定义ExamId字段。如果它是唯一ID,则最好的方法是定义为auto incremented key field。在这种情况下,只需使用以下INSERT语句而不使用ExamId,SQL Server将自动插入唯一的ID。

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'