Narzędzie tablediff
The tablediff utility is used to compare the data in two tables for non-convergence, and is particularly useful for troubleshooting non-convergence in a replikacja topology.Tego narzędzia można używać wiersz polecenia lub w pliku wsadowym do wykonywania następujących zadań:
A row by row comparison between a source table in an instance of Microsoft SQL Server acting as a replication Publisher and the destination table at one or more instances of SQL Server acting as replication Subscribers.
Wykonać szybkie porównanie porównując tylko liczbę wierszy i schematu.
Wykonuje porównanie poziomie kolumna.
Generowanie Transact-SQL skrypt, aby rozwiązać problem niezgodności w obiekt docelowy serwera, aby doprowadzić do urządzenie źródłowe i obiekt docelowy tabel do wywoływania zbieżności.
Wyniki dziennika do pliku wyjściowego lub do tabela w docelowej bazie danych.
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.-sourceserversource_server_name[**\instance_name]
Jest to nazwa urządzenie źródłowe serwera.Określ source_server_name dla wystąpienie domyślnego SQL Server. Określ source_server_name\**instance_name dla nazwanego wystąpienie programu SQL Server.-sourcedatabasesource_database
Jest nazwą Yródłowej bazy danych.-sourcetablesource_table_name
Jest to nazwa urządzenie źródłowe sprawdzana jest tabela.-sourceschemasource_schema_name
Właściciela schematu urządzenie źródłowe tabela.Domyślnie przyjmowana jest właścicielem tabela jest dbo.-sourcepasswordsource_password
Jest to hasło dla identyfikatora logowania, używane do łączenia się z urządzenie źródłowe za pomocą serwera SQL Server Uwierzytelnianie.Security Note: Gdy to możliwe, dostawy zabezpieczeń poświadczenia w czasie wykonywania.Jeśli poświadczenia muszą być przechowywane w pliku skryptu, należy zabezpieczyć plik, aby uniemożliwić nieautoryzowany dostęp.
-sourceusersource_login
Jest używany do łączenia się z identyfikatora logowania urządzenie źródłowe za pomocą serwera SQL Server Uwierzytelnianie. Jeśli source_login nie jest podany, wówczas jest używane uwierzytelnianie systemu Windows, podczas łączenia się z urządzenie źródłowe serwera. When possible, use Windows Authentication.-sourcelocked
urządzenie źródłowe Tabela jest zablokowana podczas porównywania przy użyciu TABLOCK i HOLDLOCK wskazówek tabela.-destinationserverdestination_server_name[**\instance_name]
Jest to nazwa obiekt docelowy serwera.Określ destination_server_name dla wystąpienie domyślnego SQL Server. Określ destination_server_name\**instance_name dla nazwanego wystąpienie programu 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 schematu obiekt docelowy tabela.Domyślnie przyjmowana jest właścicielem tabela jest dbo.-destinationpassworddestination_password
Jest to hasło dla identyfikatora logowania, używane do łączenia się z obiekt docelowy za pomocą serwera SQL Server Uwierzytelnianie.Security Note: Gdy to możliwe, dostawy zabezpieczeń poświadczenia w czasie wykonywania.Jeśli poświadczenia muszą być przechowywane w pliku skryptu, należy zabezpieczyć plik, aby uniemożliwić nieautoryzowany dostęp.
-destinationuserdestination_login
Jest używany do łączenia się z identyfikatora logowania obiekt docelowy za pomocą serwera SQL Server Uwierzytelnianie. Jeśli destination_login nie jest podany, wówczas jest używane uwierzytelnianie systemu Windows, podczas nawiązywania połączenia z serwerem. When possible, use Windows Authentication.-destinationlocked
obiekt docelowy Tabela jest zablokowana podczas porównywania przy użyciu TABLOCK i HOLDLOCK wskazówek tabeli.-blarge_object_bytes
To liczba bajtów do porównania przy dużych obiektów kolumny Typ danych, który zawiera: text, ntext, image, varchar(max), nvarchar(max) and varbinary(max).large_object_bytes defaults to the size of the column.Wszystkie powyższe dane large_object_bytes nie jest porównywana.-bf number_of_statements
Jest to liczba Transact-SQL instrukcje do zapisu bieżącej Transact-SQL plik skryptu, kiedy -f opcja jest używana.Gdy liczba Transact-SQL instrukcje przekracza number_of_statements, nowy Transact-SQL tworzony jest plik skryptu.-c
Porównać poziomie kolumna.-dt
Usunąć tabelę wyników, określony przez table_name, jeśli tabela już istnieje.-ettable_name
Określa nazwę tabela wyników, która ma zostać utworzona.Jeśli ta tabela już istnieje, -DT musi być używany lub operacja nie powiedzie się.-f [ file_name ]
Generuje Transact-SQL skrypt w celu dostosowania tabela na serwerze docelowym do wywoływania zbieżności z tabelą w urządzenie źródłowe serwera. Opcjonalnie można określić nazwę i ścieżka wygenerowanych Transact-SQL plik skryptu. Jeśli file_name nie jest określony, Transact-SQL plik skryptu jest generowany w katalogu, w którym narzędzie jest uruchamiane.-ooutput_file_name
Jest to pełna nazwa i ścieżka pliku wyjściowego.-q
Wykonać szybkie porównanie porównując tylko liczbę 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
urządzenie źródłowe i obiekt docelowy porównywane są ściśle schematu.-tconnection_timeouts
Ustawia limit czasu połączenia, w sekundach, dla połączeń z urządzenie źródłowe serwera i serwera docelowego.
Return Value
Wartość |
Description |
---|---|
0 |
SUKCES |
1 |
Błąd krytyczny |
2 |
Różnice w tabela |
Remarks
The tablediff utility cannot be used with non-SQL Server servers.
Tabele z sql_variant kolumny Typ danych nie są obsługiwane.
Domyślnie tablediff narzędzie obsługuje następujące mapowania typów danych między źródłem a obiekt docelowy kolumn.
Typ urządzenie źródłowe 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życie -ścisłe opcję Nie zezwalaj na te mapowania i ścisłe sprawdzanie poprawności.
W tabela źródłowej do porównania musi zawierać co najmniej jeden klucz podstawowy, tożsamości lub kolumna ROWGUID.Po użyciu -ścisłe Opcja tabela docelowa również musi mieć klucz podstawowy, tożsamości lub kolumna ROWGUID.
The Transact-SQL script generated to bring the obiekt docelowy tabela into convergence does not include the following data types:
varchar(max)
nvarchar(max)
varbinary(max)
timestamp
xml
text
ntext
image
Uprawnienia
Aby porównać tabel, należy SELECT ALL uprawnień do obiektów tabela, są porównywane.
Aby użyć -et opcji, użytkownik musi należeć do db_owner stała rola bazy danych, co najmniej uprawnienia CREATE tabela w bazie danych subskrypcja i lub ALTER uprawnień na schemacie właściciela obiekt docelowy na serwerze docelowym.
Aby użyć -dtOpcja użytkownik musi być członkiem db_owner, stałe bazy danych roli lub co najmniej uprawnienie ALTER na schemacie właściciela obiekt docelowy na serwerze docelowym.
Aby użyć -o or -f opcji, musi mieć uprawnienia do zapisu do określonego pliku lokalizacji katalogu.
See Also