Narzędzie tablediff
W tablediff Narzędzie jest używane do porównywania danych w dwóch tabelach wywołanie zbieżności i jest szczególnie przydatna do rozwiązywania problemów nie zbieżności w topologii replikacja .To narzędzie można wiersz polecenia lub w pliku partia można wykonywać następujące zadania:
Porównanie wiersz po wierszutabela źródłow wystąpienie Microsoft SQL Server działający jako replikacjaWydawca i obiekt docelowytabela na jeden lub więcej wystąpień SQL Server działający jako replikacja subskrybentów.
Wykonać szybkie porównanie porównując tylko liczby wierszy i schematu.
Wykonywanie kolumna-poziom porównań.
Generowanie Transact-SQL skrypt, aby rozwiązać niezgodności na serwerze obiekt docelowy do tabel źródło i obiekt docelowy do wywoływania zbieżności.
Rejestrowanie wyniki do pliku wyjściowego lub do tabela w obiekt docelowy bazie danych.
Składnia
tablediff
[ -? ] |
{
-sourceserver source_server_name[\instance_name]
-sourcedatabase source_database
-sourcetable source_table_name
[ -sourceschema source_schema_name ]
[ -sourcepassword source_password ]
[ -sourceuser source_login ]
[ -sourcelocked ]
-destinationserver destination_server_name[\instance_name]
-destinationdatabase subscription_database
-destinationtable destination_table
[ -destinationschema destination_schema_name ]
[ -destinationpassword destination_password ]
[ -destinationuser destination_login ]
[ -destinationlocked ]
[ -b large_object_bytes ]
[ -bf number_of_statements ]
[ -c ]
[ -dt ]
[ -et table_name ]
[ -f [ file_name ] ]
[ -o output_file_name ]
[ -q ]
[ -rc number_of_retries ]
[ -ri retry_interval ]
[ -strict ]
[ -t connection_timeouts ]
}
Argumenty
[ -? ]
Zwraca listę obsługiwanych parametrów.-SerwerŹródłowysource_server_name[**\instance_name]
Jest nazwą serwera źródło .Określ source_server_name wystąpienie domyślne SQL Server.Określsource_server_name\**instance_namenazwane wystąpienie z SQL Server.-sourcedatabasesource_database
Jest nazwą źródło bazy danych.-elementu sourcetablesource_table_name
Jest sprawdzana jest nazwatabela źródło.-sourceschemasource_schema_name
Właściciela schematutabela źródło. Domyślnie właścicielem tabela jest przyjmowany jako dbo.-sourcepasswordsource_password
Hasło logowania używane do łączenia z serwera źródło używany jest SQL Server uwierzytelniania.Uwaga dotycząca zabezpieczeń Jeśli to możliwe, dostarczyć poświadczenia zabezpieczeń, w czasie wykonywania.Jeśli poświadczenia muszą być przechowywane w pliku skryptu, należy zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.
-użytkownik_źródłowysource_login
Logowania używane do łączenia z serwera źródło używany jest SQL Server uwierzytelniania.Jeśli source_login nie jest podany, wówczas jest używane uwierzytelnianie systemu Windows przy łączeniu się z serwera źródło .Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.-sourcelocked
źródłotabela jest zablokowana podczas porównywania przy użyciu wskazówek tabela TABLOCK i HOLDLOCK.-destinationserverdestination_server_name[**\instance_name]
Jest nazwą serwera obiekt docelowy .Określ destination_server_name wystąpienie domyślne SQL Server.Określdestination_server_name\**instance_namenazwane wystąpienie z SQL Server.-destinationdatabasesubscription_database
Jest to nazwa obiekt docelowy bazy danych.-destinationtabledestination_table
Jest to nazwa obiekt docelowy tabela.-destinationschemadestination_schema_name
Właściciela schematutabela obiekt docelowy. Domyślnie właścicielem tabela jest przyjmowany jako dbo.-destinationpassworddestination_password
Hasło logowania używany do łączenia przy użyciu serwera obiekt docelowy jest SQL Server uwierzytelniania.Uwaga dotycząca zabezpieczeń Jeśli to możliwe, dostarczyć poświadczenia zabezpieczeń, w czasie wykonywania.Jeśli poświadczenia muszą być przechowywane w pliku skryptu, należy zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.
-użytkownik_docelowydestination_login
Logowania używany do łączenia przy użyciu serwera obiekt docelowy jest SQL Server uwierzytelniania.Jeśli destination_login nie jest podany, wówczas jest używane uwierzytelnianie systemu Windows przy łączeniu się z serwerem.Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.-destinationlocked
tabela obiekt docelowyjest zablokowana podczas porównywania przy użyciu wskazówek tabela TABLOCK i HOLDLOCK.-blarge_object_bytes
Jest liczbą bajtów do porównania dla kolumn typu danych dużego obiektu, który zawiera: text, ntext, image, varchar(max), nvarchar(max) and varbinary(max).large_object_bytesDomyślnie rozmiar kolumna.Wszystkie powyższe dane large_object_bytes nie powinny być porównywane.-bf number_of_statements
Jest to liczba Transact-SQL instrukcji, aby zapisać bieżące Transact-SQL pliku skryptu, kiedy -f opcja jest używana.Gdy liczba Transact-SQL przekracza sprawozdania number_of_statements, nowy Transact-SQL tworzony jest plik skryptu.-c
Porównaj kolumna- różnic wpoziom .-dt
Usunąć wynik tabela określonej przez table_name, jeśli tabela już istnieje.-ettable_name
Określa nazwę wynik tabela , aby utworzyć.Jeśli ta tabela już istnieje, -DT muszą być używane lub operacja nie powiedzie się.-f [ file_name ]
Generuje Transact-SQL skrypt do tabela na serwerze obiekt docelowy do zbieżności z tabela na serwerze źródło .Opcjonalnie można określić nazwę i ścieżka dla wygenerowanej Transact-SQL pliku skryptu.Jeśli file_name nie jest określony, Transact-SQL wygenerowany plik skryptu w katalogu gdzie uruchamia narzędzie.-ooutput_file_name
Jest pełną nazwę i ścieżka pliku wyjściowego.-q
Wykonać szybkie porównanie porównując tylko liczby wierszy i schematu.-rcnumber_of_retries
Liczba przypadków, że narzędzie ponawia próbę operacji nie powiodło się.-ri retry_interval
Interwał w sekundach oczekiwania między kolejnymi.-ścisłe
Schemat źródłowe i obiekt docelowy ściśle są porównywane.-tconnection_timeouts
Ustawia limit czasu połączenia w sekundach dla połączeń do serwera źródło i obiekt docelowy serwera.
Wartość zwracana
Wartość |
Opis |
---|---|
0 |
SUKCES |
1 |
Błąd krytyczny |
2 |
Różnice w tabeli |
Uwagi
W tablediff Narzędzie nie można korzystać z innych niż-SQL Server serwerów.
Tabele z sql_variant kolumny Typ danych nie są obsługiwane.
Domyślnie tablediff narzędzie obsługuje następujące mapowania typu danych między kolumnami źródło i obiekt docelowy .
Typ źródła danych |
Typ danych docelowego |
---|---|
tinyint |
smallint, int lub bigint |
smallint |
int lub bigint |
int |
bigint |
timestamp |
varbinary |
varchar(max) |
text |
nvarchar(max) |
ntext |
varbinary(max) |
image |
text |
varchar(max) |
ntext |
nvarchar(max) |
image |
varbinary(max) |
Użyj -ścisłe opcję Nie zezwalaj na tych mapowań i sprawdzenia poprawności ścisłych.
źródłotabela do porównania musi zawierać co najmniej jeden kluczpodstawowy, tożsamości lub kolumnaROWGUID. Kiedy używać -ścisłe opcja, również musi mieć obiekt docelowy tabela kluczpodstawowego, tożsamości lub kolumnaROWGUID.
Transact-SQL Skrypt generowane w celu obiekt docelowytabela do zbieżności nie obejmuje następujące typy danych:
varchar(max)
nvarchar(max)
varbinary(max)
timestamp
xml
text
ntext
image
Uprawnienia
Porównywanie tabel, należy ZAZNACZYĆ wszystkie uprawnienia do obiektów tabela , są porównywane.
Aby użyć -et opcja, musi być element członkowski db_owner Stała rola bazy danychlub przynajmniej mieć uprawnienia CREATE TABLE w bazie danych subskrypcja i ZMIEŃ na schemat obiekt docelowy właściciela na serwerze obiekt docelowy .
Aby użyć -dt opcja, musi być element członkowski db_owner Stała rola bazy danychlub przynajmniej uprawnień ZMIEŃ schemat obiekt docelowy właściciela na serwerze obiekt docelowy .
Aby użyć -o lub -f Opcje, musi mieć uprawnienia zapisu lokalizacji katalogu określonego pliku.