Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
A tablediff segédprogram két táblában lévő adatok összehasonlítására szolgál a nem konvergenciához, és hasznos a replikációs topológiában a nem konvergenciával kapcsolatos hibák elhárításához. Ez a segédprogram a parancssorból vagy egy kötegfájlból használható a következő feladatok végrehajtásához:
Hasonlítsa össze az egyes sorokat a replikációs közzétevőként működő SQL Server-példány forrástáblái és a replikációs előfizetőként működő SQL Server egy vagy több példányának céltáblája között.
Gyors összehasonlítást végezhet csak a sorok számának és sémájának összehasonlításával.
Oszlopszintű összehasonlítások végrehajtása.
Hozzon létre egy Transact-SQL szkriptet a célkiszolgáló eltéréseinek kijavításához és a forrás- és céltáblák konvergenciájához.
Naplózza az eredményeket egy kimeneti fájlba vagy egy táblába a céladatbázisban.
Megjegyzés:
A tablediff segédprogram az SQL Server replikációs eszközeinek része. Az SQL Server 2022 -ben (16.x) a replikációs szolgáltatás telepítése után az alapértelmezett helyen tablediff.exe találhatóC:\Program Files\Microsoft SQL Server\160\COM.
Szemantika
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 ]
}
Érvek
[ -? ]
A támogatott paraméterek listáját adja vissza.
-sourceserver source_server_name[\instance_name]
Megadja a forráskiszolgáló nevét. Adja meg az SQL Server alapértelmezett példányának source_server_name . Adja meg a source_server_name\instance_name az SQL Server egy elnevezett példányához.
-sourcedatabase source_database
Megadja a forrásadatbázis nevét.
-sourcetable source_table_name
Az ellenőrzött forrástábla nevét adja meg.
-forrásséma source_schema_name
A forrástábla sématulajdonosa. Alapértelmezés szerint a tábla tulajdonosa dbo lesz.
-sourcepassword source_password
Megadja a forráskiszolgálóhoz sql server-hitelesítéssel való csatlakozáshoz használt bejelentkezés jelszavát.
Fontos
Ha lehetséges, adja meg a biztonsági hitelesítő adatokat futásidőben. Ha a hitelesítő adatokat szkriptfájlban kell tárolnia, a jogosulatlan hozzáférés megakadályozása érdekében gondoskodjon a fájl védelméről.
-sourceuser source_login
Megadja a forráskiszolgálóhoz sql server-hitelesítéssel való csatlakozáshoz használt bejelentkezést. Ha source_login nincs megadva, akkor a rendszer Windows-hitelesítést használ a forráskiszolgálóhoz való csatlakozáskor. Ha lehetséges, windowsos hitelesítést használjon.
-sourcelocked
Az összehasonlítás során zárolja a forrástáblát a TABLOCK és HOLDLOCK táblautasítások használatával.
-destinationserver destination_server_name[\instance_name]
A célkiszolgáló nevét adja meg. Adja meg a destination_server_name az SQL Server alapértelmezett példányához. Adja meg az <destination_server_name>\<instance_name> egy elnevezett SQL Server példányhoz.
-céldatabázis subscription_database
Megadja a céladatbázis nevét.
-céltábla destination_table
A céltábla nevét adja meg.
-destinationschema destination_schema_name
A céltábla sématulajdonosa. Alapértelmezés szerint a tábla tulajdonosa dbo lesz.
-destinationpassword destination_password
Megadja az SQL Server-hitelesítéssel a célkiszolgálóhoz való csatlakozáshoz használt bejelentkezés jelszavát.
Fontos
Ha lehetséges, adja meg a biztonsági hitelesítő adatokat futásidőben. Ha a hitelesítő adatokat szkriptfájlban kell tárolnia, a jogosulatlan hozzáférés megakadályozása érdekében gondoskodjon a fájl védelméről.
-destinationuser destination_login
Megadja a célkiszolgálóhoz SQL Server-hitelesítéssel való csatlakozáshoz használt bejelentkezést. Ha nem ad meg destination_login, a kapcsolat Windows-hitelesítést használ. Ha lehetséges, windowsos hitelesítést használjon.
-célzárva
Az összehasonlítás során zárolja a céltáblát a TABLOCK és HOLDLOCK táblázat-hintjeinek használatával.
-b nagy_objektum_bájtok
Megadja a nagy objektum adattípusú oszlopok összehasonlítandó bájtjainak számát, amelyek közé tartozik a szöveg, az ntext, a kép, a varchar(max), az nvarchar(max) és a varbinary(max). A large_object_bytes alapértelmezett értéke az oszlop mérete. A large_object_bytes-nál nagyobb adatok nincsenek összehasonlítva.
-bf nyilatkozatok száma
Megadja, hogy hány Transact-SQL utasítást írjon az aktuális Transact-SQL szkriptfájlba a -f beállítás használatakor. Ha a Transact-SQL utasítások száma meghaladja a nyilatkozatok száma értéket, létrejön egy új Transact-SQL szkriptfájl.
-c
Az oszlopszintű különbségeket hasonlítja össze.
-Dt
A table_name által megadott eredménytáblát elveti, ha a tábla már létezik.
-et table_name
Megadja a létrehozandó eredménytábla nevét. Ha ez a tábla már létezik, akkor azt kell használnia -DT , vagy a művelet meghiúsul.
-f [ file_name ]
Létrehoz egy Transact-SQL szkriptet, amely a célkiszolgálón lévő táblát konvergenciába állítja a forráskiszolgáló táblájával. Megadhat egy nevet és elérési utat a létrehozott Transact-SQL szkriptfájlhoz. Ha nem adja meg a file_name, a segédprogram létrehozza a Transact-SQL szkriptfájlt abban a könyvtárban, ahol fut.
-o output_file_name
Megadja a kimeneti fájl teljes nevét és elérési útját.
-q
Gyors összehasonlítást végez csak a sorok számának és sémájának összehasonlításával.
-rc ismétlések_száma
Azon esetek száma, amikor a segédprogram újrapróbálkozott egy sikertelen művelettel.
-ri retry_interval
Az újrapróbálkozások közötti várakozási idő másodpercben.
-szigorú
Szigorúan összehasonlítja a forrás- és célsémát.
-t kapcsolati_időtúllépések
Másodpercben beállítja a kapcsolat időtúllépési időtartamát a forráskiszolgálóhoz és a célkiszolgálóhoz való csatlakozáshoz.
Visszaadott érték
| Érték | Leírás |
|---|---|
0 |
Siker |
1 |
Kritikus hiba |
2 |
Táblázatok közötti különbségek |
Megjegyzések
A tablediff segédprogram nem használható nem SQL Server-kiszolgálókkal.
A sql_variant adattípusú oszlopokat tartalmazó táblák nem támogatottak.
Alapértelmezés szerint a tablediff segédprogram támogatja az alábbi adattípus-leképezéseket a forrás- és céloszlopok között.
| Forrásadattípus | Céladattípus |
|---|---|
| tinyint | smallint, int vagy bigint |
| smallint | int vagy bigint |
| int | bigint |
| időbélyeg | varbinary |
| varchar(max) | szöveg |
| nvarchar(max) | ntext |
| varbinary(max) | kép |
| szöveg | varchar(max) |
| ntext | nvarchar(max) |
| kép | varbinary(max) |
Ezzel a beállítással letilthatja ezeket a -strict leképezéseket, és szigorú ellenőrzést hajthat végre.
Az összehasonlítás forrástáblájának tartalmaznia kell legalább egy elsődleges kulcsot, identitást vagy ROWGUID oszlopot. Amikor a -strict beállítást használja, a céltáblának elsődleges kulccsal, identitással vagy ROWGUID oszloppal is rendelkeznie kell.
A céltáblát konvergenciába hozó Transact-SQL szkript nem tartalmazza a következő adattípusokat:
- varchar(max)
- nvarchar(max)
- varbinary(max)
- időbélyeg
- xml
- szöveg
- ntext
- kép
Engedélyek
A táblák összehasonlításához engedélyekre van szüksége SELECT ALL az összehasonlítandó táblaobjektumokhoz.
Ahhoz, hogy használni tudja a -et beállítást, a db_owner rögzített adatbázis-szerepkör tagjának kell lennie, vagy legalább CREATE TABLE engedéllyel kell rendelkeznie az előfizetési adatbázisban és ALTER engedéllyel a célkiszolgáló tulajdonosi sémáján.
A beállítás használatához -dt a db_owner rögzített adatbázis-szerepkör tagjának kell lennie, vagy legalább engedéllyel kell rendelkeznie ALTER a célkiszolgáló céltulajdonosi sémájára.
A -o beállítások használatához -f írási engedélyekkel kell rendelkeznie a megadott fájlkönyvtár-helyre.