Актуализирайте SQL за ред от 100 колони в таблица на базата на друга таблица с имена на колони с име

Един ред в таблица беше погрешно презаписан. Имам резервно копие на таблицата и трябва да актуализирам един ред в основната таблица с резервните данни. Проблемът е, че таблицата има почти 100 колони. Има ли лесен начин да направя това в SQL Server, така че да не се налага ръчно да пиша това:

set maintable.a = backuptable.a, 
    maintable.b = backuptable.b,......etc.

чак до 100-та колона. Мисля, че SQL Server Management Studio може да знае, че искам да актуализирам полетата с полета със същото име в другата таблица. Има ли начин това да стане?

Благодаря предварително.


person Ojen    schedule 12.08.2011    source източник


Отговори (2)


Обикновено четете файлове, които са с потенциално големи или произволни размери, ред по ред, като презаписвате паметта на предишния ред с всеки прочетен ред. Или може просто да искате да завършите или да започнете файла, за да получите най-новите записи. Увеличаването на разпределението на паметта ви с нарастването на файла не е отговорът.
person JNK    schedule 12.08.2011
comment
Ами ако първичният ключ е колона за самоличност? Получавам следната грешка: Не мога да вмъкна изрична стойност за колона за идентичност в таблица „членове“, когато IDENTITY_INSERT е зададено на OFF. - person Ojen; 12.08.2011
comment
Ако е identity, тогава трябва да използвате изричен списък с колони. няма начин да го заобиколите. - person JNK; 12.08.2011

В SSMS можете да плъзнете и пуснете възела columns в Object Explorer в прозореца на заявката. Той ще генерира разделен със запетаи низ от всички колони.

person Mikael Eriksson    schedule 12.08.2011
comment
+1 - Добра точка. Все пак ще бъде PITA да напиша синтаксиса за актуализацията - person JNK; 12.08.2011
comment
@JNK - Толкова вярно. Това е по-удобно, когато се използва във вложка. - person Mikael Eriksson; 12.08.2011