Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
A séma-összehasonlító eszköz lehetővé teszi két adatbázis-definíció összehasonlítását, ahol az összehasonlítás forrása és célja a csatlakoztatott adatbázis, az SQL Database-projekt vagy .dacpac a fájl bármilyen kombinációja lehet. Ha az összehasonlítás befejeződött, az összehasonlítás eredményei olyan műveletek halmazaként jelennek meg, amelyek a célt a forrással azonosvá teszik. Az adatbázismodellek közötti különbségek a forráskövetési diffhez hasonlóan jelennek meg. Ha a séma-összehasonlítási cél egy SQL-projekt vagy egy adatbázis, frissítheti a célértéket közvetlenül a séma-összehasonlító felületről, vagy létrehozhat egy ugyanolyan hatású frissítési szkriptet.
A séma-összehasonlítás a következő funkciókat biztosítja:
- Két
.dacpacfájl, adatbázis vagy SQL-projekt sémáinak összehasonlítása. - Az eredményeket a forrással egyező célnak megfelelő műveletkészletként tekintheti meg.
- Az eredményekben felsorolt műveletek szelektív kizárása.
- Adja meg az összehasonlítás hatókörét vezérlő beállításokat.
- A módosításokat közvetlenül a célra alkalmazhatja, vagy létrehozhat egy szkriptet a módosítások későbbi alkalmazásához.
- Mentse el az összehasonlítást.
Functionality
A forrás és a cél közötti különbségek egy rácsban jelennek meg az egyszerű áttekintés érdekében. Az alábbi lehetőségek bármelyikéből származó adatbázismodellek közötti összehasonlítás bármelyik irányban végezhető el:
- csatlakoztatott adatbázis
- SQL Database-projekt
-
.dacpacfájl
A séma-összehasonlításban részletezheti és áttekintheti az egyes különbségeket az eredményrácsban vagy szkript formájában, ahol a módosítások részletei soronként érhetők el. A cél frissítése előtt szelektíven is kizárhat bizonyos különbségeket. A séma-összehasonlító eszköz a Visual Studióban, az Azure Data Studióban és a parancssorban érhető el.
Séma-összehasonlítási lehetőségek
A séma-összehasonlítási lehetőségek a DacFx .NET-kódtárban elérhető üzembe helyezési lehetőségekből származnak. Ezek a lehetőségek a következők:
- üres tér figyelmen kívül hagyása
- partíciós sémák figyelmen kívül hagyása
- oszlopsorrendet figyelmen kívül hagyni
- azokat az indexeket elvetése, amelyek nem szerepelnek a forrásban
- lehetséges adatvesztés blokkolása
Az összehasonlításban szereplő objektumtípusok is konfigurálhatók. Ezek az objektumok többek között táblákat, tárolt eljárásokat, indexeket, engedélyeket, felhasználó által definiált típusokat tartalmaznak.
Séma-összehasonlítási fájlok
A séma-összehasonlítás összehasonlító definíciója menthető fájlként, más néven .scmp. Ez a fájl a séma-összehasonlítással kapcsolatos információkat tárolja XML-ben, és a következőket tartalmazza:
- forrás- és célkapcsolat adatai
- összehasonlítási lehetőségek
- kizárt objektumtípusok
Egy .scmp fájl megnyitható a Visual Studióban vagy az Azure Data Studióban, hogy később egyszerűen futtassa ugyanazt az összehasonlítást, vagy megossza az összehasonlítást másokkal.
A séma összehasonlítás indítása és használata
A Visual Studio Eszközök menüjében válassza az SQL Server, majd az Új séma összehasonlítása lehetőséget.
Másik lehetőségként kattintson a jobb gombbal a TradeDev projektre a Megoldáskezelőben, és válassza a Séma összehasonlítása lehetőséget.
Megnyílik a Séma összehasonlítása ablak, és a Visual Studio automatikusan hozzárendel egy nevet, például
SqlSchemaCompare1.A Séma összehasonlítása ablak eszköztár alatt két legördülő lista menü jelenik meg, amelyek között zöld nyíl látható. Ezek a menük lehetővé teszik adatbázis-definíciók kiválasztását az összehasonlító forráshoz és a célhoz.
A Forrás kiválasztása legördülő listában válassza a Forrás kiválasztása lehetőséget, és megnyílik a Forrásséma kiválasztása párbeszédpanel.
Ha a projekt nevére a jobb gombbal kattintva megnyitotta a Séma összehasonlítása ablakot, a forrásséma már ki van töltve, és továbbléphet a 4. lépésre.
Fejezze be a séma-összehasonlító forrás kiválasztását a Project, az Adatbázis-kapcsolat vagy a .dacpac fájl kiválasztásával. A forrás az adatbázisdefiníció, amelyet a cél módosításának alapjául szeretne használni.
A Séma összehasonlítása ablakCél kiválasztása legördülő listájában válassza a Cél kiválasztása lehetőséget, és megnyílik a Célséma kiválasztása párbeszédpanel. Fejezze be a séma-összehasonlító cél kiválasztását a Project, az Adatbázis-kapcsolat vagy a .dacpac fájl kiválasztásával. A cél az adatbázisdefiníció, amelyet ki szeretne értékelni, és lehetséges, hogy módosításokat szeretne alkalmazni.
A Séma összehasonlítása ablak eszköztár Beállítások gombjára kattintva megadhatja, hogy mely objektumokat hasonlítja össze, milyen típusú különbségeket hagy figyelmen kívül, és egyéb beállításokat.
Az összehasonlítási folyamat elindításához válassza a Séma összehasonlítása ablak eszköztár Összehasonlítás gombját.
Ha az összehasonlítás befejeződött, a projekt és az adatbázis közötti szerkezeti különbségek az ablak felső részén, az Eredmények panelen jelennek meg. Az összehasonlító eredmények az összes különbséget művelet (például Törlés, Módosítás vagy Hozzáadás) szerint csoportosítják alapértelmezés szerint. Az Eredmények panel minden adatbázis-objektumhoz megjelenít egy sort, amely különbözik az adatbázis-definícióktól. Minden sor azonosítja a forrás- vagy célséma objektumát (vagy mindkettőt), valamint azt a műveletet, amelyet a célsémában hajtanak végre, hogy a célobjektum megegyezik a forrásobjektuméval. Ha egy objektum újrabontása megtörtént, és átnevezték vagy áthelyezték egy új sémába, a forrás- és célnevek eltérőek, és a forrásnév félkövér betűtípussal jelenik meg a különbség kiemeléséhez.
Az eredménylista alapértelmezés szerint elrejti a két sémában azonos vagy frissítésre nem támogatott objektumokat (például beépített objektumokat). Az eszközsávon a megfelelő szűrőgombokat választva megjelenítheti ezeket az objektumokat.
A csoportosítási beállítás módosításához válassza a Csoporteredmények legördülő listát az eszköztáron. Válassza a Típus lehetőséget az eredmények objektumtípus (például táblák, nézetek vagy tárolt eljárások) szerinti csoportosításához.
Alapértelmezés szerint az update target művelet hatóköre minden különbséget tartalmaz. Kizárhatja a nem szinkronizálni kívánt különbségeket. Ehhez törölje a jelet a Művelet oszlopból az egyes sorok közepén. Másik lehetőségként kattintson a jobb gombbal egy sorra a Séma panelen, és válassza az Kizárás lehetőséget. A sor azonnal szürkítve jelenik meg. Ha séma-összehasonlítást használ a céladatbázis frissítéséhez, a rendszer nem veszi figyelembe ezt a sort a függőben lévő módosítások esetében.
A jobb gombbal egy csoportsorra is kattinthat, és kiválaszthatja az Összes kizárása vagy az Összes belefoglalása lehetőséget, ami egyenértékű a csoport összes különbségének jelölésének vagy ellenőrzésének megszüntetésével. Ha sémák szerint csoportosítja az eredményeket, a jobb gombbal a csoportsorra való kattintással belefoglalhatja vagy kizárhatja egy adott séma összes módosítását.
Ha a kizárt sornak vannak függő objektumai (például egy Nézetsor által hivatkozott táblázatsor), a kizárt sor le van tiltva, de a jelölőnégyzete nincs törölve. Ha az attól függő összes sor nincs bejelölve, a letiltott sor nincs bejelölve. Ezenkívül, ha egy sort átszerveznek (átneveznek vagy áthelyeznek egy másik sémába), akkor az adott sor és a függő gyermeksorok jelölőnégyzete letiltásra kerül.
Ha frissíti az összehasonlítást, a kihagyni kívánt különbségek figyelmen kívül lesznek hagyva.
A cél sémájának frissítéséhez két lehetősége van. A cél közvetlenül a Séma összehasonlítása ablakból frissíthető, ha a cél adatbázis vagy projekt, vagy létrehozhat egy frissítési szkriptet, ha a cél egy adatbázis vagy egy adatbázisfájl. Megjelenik egy létrehozott szkript a Transact-SQL szerkesztőben, amelyet megvizsgálhat és végrehajthat egy adatbázison.
Note
A grafikus séma összehasonlítása részben elérhető az SDK-stílusú SQL-projektek előzetes verziójában a Visual Studióban. A séma-összehasonlítások a csatlakoztatott adatbázisokhoz és .dacpac fájlokhoz érhetők el, az SQL-adatbázisprojektek még nem érhetők el.
A Visual Studio Eszközök menüjében válassza az SQL Server, majd az Új séma összehasonlítása lehetőséget.
Másik lehetőségként kattintson a jobb gombbal a TradeDev projektre a Megoldáskezelőben, és válassza a Séma összehasonlítása lehetőséget.
Megnyílik a Séma összehasonlítása ablak, és a Visual Studio automatikusan hozzárendel egy nevet, például
SqlSchemaCompare1.A Séma összehasonlítása ablak eszköztár alatt két legördülő lista menü jelenik meg, amelyek között zöld nyíl látható. Ezek a menük lehetővé teszik adatbázis-definíciók kiválasztását az összehasonlító forráshoz és a célhoz.
A Forrás kiválasztása legördülő listában válassza a Forrás kiválasztása lehetőséget, és megnyílik a Forrásséma kiválasztása párbeszédpanel.
Ha a projekt nevére a jobb gombbal kattintva megnyitotta a Séma összehasonlítása ablakot, a forrásséma már ki van töltve, és továbbléphet a 4. lépésre.
Fejezze be a séma-összehasonlító forrás kiválasztását a Project, az Adatbázis-kapcsolat vagy a .dacpac fájl kiválasztásával. A forrás az adatbázisdefiníció, amelyet a cél módosításának alapjául szeretne használni.
A Séma összehasonlítása ablakCél kiválasztása legördülő listájában válassza a Cél kiválasztása lehetőséget, és megnyílik a Célséma kiválasztása párbeszédpanel. Fejezze be a séma-összehasonlító cél kiválasztását a Project, az Adatbázis-kapcsolat vagy a .dacpac fájl kiválasztásával. A cél az adatbázisdefiníció, amelyet ki szeretne értékelni, és lehetséges, hogy módosításokat szeretne alkalmazni.
A Séma összehasonlítása ablak eszköztár Beállítások gombjára kattintva megadhatja, hogy mely objektumokat hasonlítja össze, milyen típusú különbségeket hagy figyelmen kívül, és egyéb beállításokat.
Az összehasonlítási folyamat elindításához válassza a Séma összehasonlítása ablak eszköztár Összehasonlítás gombját.
Ha az összehasonlítás befejeződött, a projekt és az adatbázis közötti szerkezeti különbségek az ablak felső részén, az Eredmények panelen jelennek meg. Alapértelmezés szerint az összehasonlító eredmények az összes különbséget művelet szerint csoportosítják (például Törlés, Módosítás vagy Hozzáadás). Az Eredmények panel minden adatbázis-objektumhoz megjelenít egy sort, amely különbözik az adatbázis-definícióktól. Minden sor azonosítja a forrás- vagy célséma objektumát (vagy mindkettőt), valamint azt a műveletet, amelyet a célsémában hajtanak végre, hogy a célobjektum megegyezik a forrásobjektuméval. Ha egy objektum újrabontása megtörtént, és átnevezték vagy áthelyezték egy új sémába, a forrás- és célnevek eltérőek, és a forrásnév félkövér betűtípussal jelenik meg a különbség kiemeléséhez.
Az eredménylista alapértelmezés szerint elrejti a két sémában azonos vagy frissítésre nem támogatott objektumokat (például beépített objektumokat). Az eszközsávon a megfelelő szűrőgombokat választva megjelenítheti ezeket az objektumokat.
A csoportosítási beállítás módosításához válassza a Csoporteredmények legördülő listát az eszköztáron. Válassza a Típus lehetőséget az eredmények objektumtípus (például táblák, nézetek vagy tárolt eljárások) szerinti csoportosításához.
Alapértelmezés szerint az update target művelet hatóköre minden különbséget tartalmaz. Kizárhatja a nem szinkronizálni kívánt különbségeket. Ehhez törölje a jelet a Művelet oszlopból az egyes sorok közepén. Másik lehetőségként kattintson a jobb gombbal egy sorra a Séma panelen, és válassza az Kizárás lehetőséget. A sor azonnal szürkítve jelenik meg. Ha séma-összehasonlítást használ a céladatbázis frissítéséhez, a rendszer nem veszi figyelembe ezt a sort a függőben lévő módosítások esetében.
A jobb gombbal egy csoportsorra is kattinthat, és kiválaszthatja az Összes kizárása vagy az Összes belefoglalása lehetőséget, ami egyenértékű a csoport összes különbségének jelölésének vagy ellenőrzésének megszüntetésével. Ha sémák szerint csoportosítja az eredményeket, ez hasznos módszer egy adott séma összes módosításának belefoglalására vagy kizárására.
Ha a kizárt sornak vannak függő objektumai (például egy Nézetsor által hivatkozott táblázatsor), a kizárt sor le van tiltva, de a jelölőnégyzete nincs törölve. Ha az attól függő összes sor nincs bejelölve, a letiltott sor nincs bejelölve. Ezenkívül, ha egy sort átszerveznek (átneveznek vagy áthelyeznek egy másik sémába), akkor az adott sor és a függő gyermeksorok jelölőnégyzete letiltásra kerül.
Ha frissíti az összehasonlítást, a kihagyni kívánt különbségek figyelmen kívül lesznek hagyva.
A cél sémájának frissítéséhez két lehetősége van. A cél közvetlenül a Séma összehasonlítása ablakból frissíthető, ha a cél adatbázis vagy projekt, vagy létrehozhat egy frissítési szkriptet, ha a cél egy adatbázis vagy egy adatbázisfájl. Megjelenik egy létrehozott szkript a Transact-SQL szerkesztőben, amelyet megvizsgálhat és végrehajthat egy adatbázison.
A Visual Studio Code séma-összehasonlításával kapcsolatos részletesebb információk a Séma összehasonlítása című cikkben találhatók.
A Visual Studio Code-ban a parancskatalógusban (
ctrl/cmd+shift+P) keresse meg és válassza ki az MSSQL: Schema Compare parancsot.Másik lehetőségként kattintson a jobb gombbal egy adatbázisprojektre az Adatbázisprojektek nézetben vagy egy adatbázisra az Object Explorerben, és válassza a Séma összehasonlítása lehetőséget.
Ekkor megnyílik a Séma összehasonlítása ablak, és előfordulhat, hogy egy forrás vagy cél előre van állítva az indítási pont alapján.
A Séma összehasonlítása ablak eszköztára alatt két három pontot tartalmazó gomb jelenik meg, köztük egy nyíllal. Ezek a menük lehetővé teszik adatbázis-definíciók kiválasztását az összehasonlító forráshoz és a célhoz.
Ha a forrás vagy cél kettőspont gombját választja, megnyílik egy párbeszédpanel, ahol mindkettő frissíthető. Fejezze be a séma-összehasonlító forrás kiválasztását a Project, az Adatbázis-kapcsolat vagy a .dacpac fájl kiválasztásával. A forrás az adatbázisdefiníció, amelyet a cél módosításának alapjául szeretne használni. A cél az adatbázisdefiníció, amelyet ki szeretne értékelni, és lehetséges, hogy módosításokat szeretne alkalmazni.
A kijelölés befejezése után az OK gombra kattintva zárja be a párbeszédpanelt, és térjen vissza a Séma összehasonlítása ablakhoz.
A Séma összehasonlítása ablak eszköztár Beállítások gombjára kattintva megadhatja, hogy mely objektumokat hasonlítja össze, milyen típusú különbségeket hagy figyelmen kívül, és egyéb beállításokat.
Az összehasonlítási folyamat elindításához válassza a Séma összehasonlítása ablak eszköztár Összehasonlítás gombját.
Ha az összehasonlítás befejeződött, a projekt és az adatbázis közötti szerkezeti különbségek az ablak felső részén, az Eredmények panelen jelennek meg. Alapértelmezés szerint az összehasonlító eredmények az összes különbséget művelet szerint csoportosítják (például Törlés, Módosítás vagy Hozzáadás). Az Eredmények panel minden adatbázis-objektumhoz megjelenít egy sort, amely különbözik az adatbázis-definícióktól. Minden sor azonosítja a forrás- vagy célséma objektumát (vagy mindkettőt), valamint azt a műveletet, amelyet a célsémában hajtanak végre, hogy a célobjektum megegyezik a forrásobjektuméval. Ha egy objektum újrabontása megtörtént, és átnevezték vagy áthelyezték egy új sémába, a forrás- és célnevek eltérőek, és a forrás neve félkövér betűtípussal jelenik meg a különbség kiemeléséhez.
Alapértelmezés szerint az update target művelet hatóköre minden különbséget tartalmaz. Kizárhatja a nem szinkronizálni kívánt különbségeket. Ehhez törölje a jelet a Művelet oszlopból az egyes sorok közepén. Ha séma-összehasonlítást használ a céladatbázis frissítéséhez, a rendszer nem veszi figyelembe ezt a sort a függőben lévő módosítások esetében.
Ha a kizárt sornak vannak függő objektumai (például egy Nézetsor által hivatkozott táblázatsor), a kizárt sor le van tiltva, de a jelölőnégyzete nincs törölve. Ha az attól függő összes sor nincs bejelölve, a letiltott sor nincs bejelölve. Ezenkívül, ha egy sort átszerveznek (átneveznek vagy áthelyeznek egy másik sémába), akkor az adott sor és a függő gyermeksorok jelölőnégyzete letiltásra kerül.
Ha frissíti az összehasonlítást, a kihagyni kívánt különbségek figyelmen kívül lesznek hagyva.
A cél sémájának frissítéséhez két lehetősége van. A cél közvetlenül a Séma összehasonlítása ablakból frissíthető az Alkalmaz gombbal, ha a cél egy adatbázis vagy projekt, vagy létrehozhat egy frissítési szkriptet, ha a cél egy adatbázis a Szkript létrehozása gombbal. Megjelenik egy létrehozott szkript a Transact-SQL szerkesztőben, amelyet megvizsgálhat és végrehajthat egy adatbázison.
A séma-összehasonlításhoz grafikus eszközre, például Visual Studióra vagy a Visual Studio Code MSSQL-bővítményére van szükség.