2012-08-28 93 views
0

我有這個sql server 2008的表結構。我想用createdon datetime字段更新mom_reportedon。我在下面的sql語句中嘗試了這個,但它失敗了。我該如何嘗試?在同一個表中更新datetime字段sql server 2008

Update table1 
set reportedon = createdon 
where name is not null 

update table1 
set reportedon = convert(datetime,'2012-03-29 17:50:59.000') 
where mom_name is not null 

enter image description here

+2

如何這些陳述失敗了嗎? – Gabe

回答

0

這樣做會是這樣的常用方法:

UPDATE T1 SET reportedon = T2.createdon 
FROM table1 T1 
INNER JOIN table1 T2 ON T1.id = T2.id 

如果 '身份證' 是主鍵。然而,這看起來似乎是在上面的例子中「姓名」,這將意味着:

UPDATE T1 SET reportedon = T2.createdon 
FROM table1 T1 
INNER JOIN table1 T2 ON T1.name = T2.name 

(是的,你會內側連接你的表本身就存在)

+0

嗨斯科特,當我嘗試你的sql語句時,我得到了這個錯誤消息「表'table1'是不明確的。」謝謝。 – Nightmare

+0

對不起!現在更新... –

0
UPDATE T1 SET reportedon = T2.createdon 
FROM table1 T1 
INNER JOIN table1 T2 ON T1.name = T2.name 
where T1.name is not null 
+0

嗨AnandPhadke,當我嘗試你的SQL查詢,不幸的是它失敗了。錯誤消息是「更新或插入視圖或函數'T1'失敗,因爲它包含派生或常量字段。」 – Nightmare

+0

現在嘗試更新的查詢請求 – AnandPhadke

相關問題