Mam table a
i table b
. (SQL Server 2008)T-SQL - Czy istnieje (bezpłatny) sposób porównywania danych w dwóch tabelach?
Obie tabele mają dokładnie taki sam schemat.
Dla potrzeb tego pytania, rozważ table a
= mój lokalny stół dla deweloperów, table b
= stół na żywo.
Potrzebuję utworzyć skrypt SQL (zawierający instrukcje UPDATE/DELETE/INSERT
), który zaktualizuje tabelę b tak, jak w tabeli a. Skrypt ten zostanie następnie wdrożony w żywej bazie danych.
Jakieś bezpłatne narzędzia, które mogą to zrobić, czy lepiej, ale sposób, w jaki mogę to zrobić sam?
Wydaje mi się, że prawdopodobnie potrzebuję jakiegoś typu sprzężenia we wszystkich polach w tabelach, a następnie wygeneruję na tej podstawie dynamiczny SQL.
Ktoś ma jakieś pomysły?
EDIT
Dobra, pomyślałem, że wyjaśnienie to pytanie niewiele.
Tabela, którą należy zsynchronizować, to prosta tabela przeglądowa. Dane są bardzo proste i proste.
Oto pomysł co TABLE A
może wyglądać następująco:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 0
Oto pomysł co TABLE B
może wyglądać następująco:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
Zasadniczo, wszystko co chcę zrobić, to zmiana, która BIT
kolumna (IsFoo
) w TABLE B
, aby dopasować odpowiednią wartość w TABLE A
dla tego samego identyfikatora.
Pamiętaj:
TABLE A
jest na moim komputerze lokalnymTABLE B
znajduje się na serwerze żywo
Oczywiście mam (wiarygodne) zapasową TABLE B
na moim komputerze lokalnym, które muszę napisać skrypt, a następnie uruchomić skrypt na serwerze na żywo.
Tabela ma także integralność referencyjną (inne kolumny nie zostały pokazane). Co oznacza, że nie mogę po prostu usunąć wszystkiego w TABLE B
i zrobić wstawkę od TABLE A
.
Ten skrypt będzie jednorazowy. Więc nie ma potrzeby robienia rzeczy takich jak serwer połączony, replikacja, itp. Doceń odpowiedzi chociaż chłopaki. =)
EDIT:
Ok - więc Poszedłem z odpowiedzią Olega (VS2010 Danych porównania). Szybko, łatwo i działa uroczo.
Nie można powiedzieć, że inne odpowiedzi są nieprawidłowe. Doceniam wszystkie odpowiedzi!
Każda odpowiedź będzie bardzo zależała od tego, czy masz pole, które można wiarygodnie wykorzystać do dopasowania dwóch rzędów. –
Odpowiedź zależy również od tego, jak często trzeba to robić i jak duże są dane? Jeśli jest to jednorazowa rzecz, możesz po prostu użyć Kreatora importu/eksportu do przeniesienia 'table b' do' table a'. Jeśli chcesz, aby zmiany zostały natychmiastowo odzwierciedlone, możesz wdrożyć replikację. – codingbadger