2015-08-21 6 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

Возможный дубликат [Как выполнить обновление таблицы CE Sql Server CE из другой таблицы] (http://stackoverflow.com/questions/1311236/how-to-do-sql-server-ce-table-update-from-another- table) – TTeeple

+0

@TTeeple Нет, это не обман, так как этот ответ не работает, и это то же самое, что ответ Абхишека, который не работает. –

+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

Кажется, что это невозможно сделать в одном запросе, когда необходимо выполнить UPDATE для ** [TO] ** из ** [ ИЗ]**. В соответствии с предложениями значение должно храниться в некоторой переменной, а затем использовать переменную для обновления. – Abhishek

+0

как бы вы это сделали? –

-1

Обновление до Set to.fld1 = from1.fld1 из table1 внутрипартийной присоединиться к таблице from1 на to.id = from1.id

+0

OP явно упоминает, что 'from' не поддерживается. –

+0

Ваше право. Что такое ОП? –

+0

Оригинальный плакат –

Смежные вопросы