我具有低於其具有3列Student_Name
,Joining_Date
和Batch_Number
表Course
。 Batch_Number
根據Joining_Date
連接月份,日期和年份從Joining_Date
計算得出。在數據庫是否可以使用正在更新的列值來更新SQL Server中表中的另一列?
一個條目看起來像什麼:
Aman | 01/08/2016 | 08012016
我想更新Joining_Date
說2017年1月8日,想在短短的一個查詢基於Joining_Date
更新Batch_Number
。
我能實現的兩個步驟:
第一步:
UPDATE Course
SET Joining_Date = DATEADD(YEAR, 1, Joining_Date)
WHERE Student_Name = 'Aman'
第二步:
UPDATE Course
SET Batch_Number = CONCAT(RIGHT('0' + RTRIM(DATEPART(MM,Joining_Date)), 2), RIGHT('0' + RTRIM(DATEPART(DD,Joining_Date)), 2), DATEPART(YYYY,Joining_Date))
WHERE Student_Name = 'Aman'
我想要實現一步到位上面的事情。因此,儘管嘗試:
UPDATE Course
SET Joining_Date = DATEADD(YEAR, 1, Joining_Date),
Batch_Number = CONCAT(RIGHT('0' + RTRIM(DATEPART(MM,Joining_Date)), 2), RIGHT('0' + RTRIM(DATEPART(DD,Joining_Date)), 2), DATEPART(YYYY,Joining_Date))
WHERE Student_Name = 'Aman'
它沒有更新Batch_Number
和它使用的Joining_Date
舊值這麼Batch_Number
保持不變。
是否可以更新一杆Joining_Date
和Batch_Number
?
早期的反應將不勝感激。
在此先感謝讀者!
它的工作夥計!不知道爲什麼在這裏發佈這個冗長的問題之前我沒有想到。 謝謝你們你搖滾! –