2015-08-21 66 views
0

我想更新[To]表中来自[From]表中关键字相等的行中的行。所以这是我会做的:UPDATE table1 FROM table2(使用Sql Server Compact)

UPDATE [To] 
SET [To].[Name]  = [From].[Name], 
     [To].[Size]  = [From].[Size], 
     [To].[Something] = [From].[Something] 
FROM [From] 
WHERE [To].[Id] = [From].[Id]; 
go 

问题是,CE doesn't support FROM in the UPDATE command

那么,我该如何改变这种语法在CE中工作?

+0

可能重复[如何从另一个表执行Sql Server CE表更新](http://stackoverflow.com/questions/1311236/how-to-do-sql-server-ce-table-update-from-another-表) – TTeeple

+0

@Teeple不,这不是一个骗局,因为答案不起作用,这是阿布舍克的答案,这是行不通的。 –

+0

这个怎么样? http://stackoverflow.com/questions/6933686/update-on-two-inner-joined-tables-in-sql-server-compact-4?rq=1 – TTeeple

回答

1

尝试以下代码段(未测试) -

UPDATE [To] 
SET [To].[Name]  = [From].[Name], 
     [To].[Size]  = [From].[Size], 
     [To].[Something] = [From].[Something] 
WHERE EXISTS (SELECT 1 FROM [FROM] WHERE [To].[Id] = [From].[Id]) 
+0

不用它说'列名无效。 [节点名称(如果有)= From,Column name = Name]' –

+1

看起来这样做不能在单个查询中完成,因为需要对** [TO] **中的** [从]**。根据建议,该值需要存储在某个变量中,然后使用该变量进行更新。 – Abhishek

+0

你会怎么做? –

-1

更新到 集to.fld1 = from1.fld1 从表1到内部联接表上to.id = from1.id

1跳转
+0

OP明确提到'from'不被支持。 –

+0

你的权利。什么是OP? –

+0

原始海报 –

相关问题