2016-11-30 72 views
1

我有以下的列如何从表中选择,更新和插入行?

 
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数据的每一行选择?

+5

请修改您的问题以删除发件人。 –

+0

如果你想**只更改'Term',你只需要'UPDATE''而不是'INSERT',但是你似乎试图通过添加另一个列Term'来完全改变表格,放在原来的“考试”表中。你需要提供更多的细节。 – scsimon

回答

1

目前尚不清楚该表中如何定义ExamId字段。如果它是唯一ID,则最好的方法是定义为auto incremented key field。在这种情况下,只需使用以下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'