2012-08-28 58 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

相关问题