Udostępnij za pośrednictwem


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 noteSecurity 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 noteSecurity 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.