Megosztás:


Szerelvények implementálása

A következőkre vonatkozik:SQL Server

Ez a cikk a következő területekről nyújt tájékoztatást, amelyek segítenek az adatbázisokban található szerelvények implementálásához és használatához:

  • Szerelvények létrehozása
  • Szerelvények módosítása
  • Szerelvények elvetése, letiltása és engedélyezése
  • Szerelvényverziók kezelése

Szerelvények létrehozása

Az összeállítások az SQL Serverben a Transact-SQL CREATE ASSEMBLY utasítással, vagy az SQL Server Management Studióban, a szerelvény által támogatott szerkesztővel hozhatók létre. Emellett az SQL Server-projekt Visual Studióban való üzembe helyezése regisztrál egy szerelvényt a projekthez megadott adatbázisban. További információ: CLR-adatbázisobjektumok üzembe helyezése.

Szerelvények módosítása

A szerelvények az SQL Serverben a Transact-SQL ALTER ASSEMBLY utasítással vagy az SQL Server Management Studióban a szerelvény által támogatott szerkesztővel módosíthatók.

Ha a következő műveleteket szeretné végrehajtani, módosíthatja a szerelvényt:

  • Módosítsa a szerelvény megvalósítását a szerelvény bináris fájljainak újabb verziójának feltöltésével. További információ: A szerelvényverziók kezelése a cikk későbbi részében.

  • Módosítsa a szerelvény engedélykészletét. További információ: Tervezési szerelvények.

  • Módosítsa a szerelvény láthatóságát. A látható szerelvények az SQL Serveren való hivatkozáshoz érhetők el. A nem megtekinthető szerelvények akkor sem érhetők el, ha az adatbázisba vannak feltöltve. Alapértelmezés szerint az SQL Server egy példányára feltöltött szerelvények láthatók.

  • A szerelvényhez társított hibakeresési vagy forrásfájl hozzáadása vagy elvetése.

Szerelvények elvetése, letiltása és engedélyezése

A rendszer elveti a szerelvényeket a Transact-SQL DROP ASSEMBLY utasítás vagy az SQL Server Management Studio használatával.

Alapértelmezés szerint az SQL Serverben létrehozott összes szerelvény le van tiltva a végrehajtásból. A clr enabled rendszer által tárolt eljárás sp_configure beállításával letilthatja vagy engedélyezheti az SQL Serverbe feltöltött összes szerelvények végrehajtását. A szerelvény végrehajtásának letiltása megakadályozza a közös nyelvi futtatókörnyezeti függvények, a tárolt eljárások, az eseményindítók, az összesítések és a felhasználó által definiált típusok végrehajtását, és leállítja a jelenleg futtatott összesítést. Az szerelvény végrehajtásának letiltása nem tiltja le a szerelvények létrehozásának, módosításának vagy elvetésének lehetőségét. További információ: kiszolgálókonfiguráció: a clr engedélyezve van.

További információ: sp_configure.

Szerelvényverziók kezelése

Amikor egy szerelvényt feltölt egy SQL Server-példányba, a rendszer az adatbázisrendszer-katalógusokban tárolja és kezeli a szerelvényt. A .NET-keretrendszerben a szerelvény definíciójában végrehajtott módosításokat az adatbáziskatalógusban tárolt szerelvényre kell propagálja.

Ha módosítania kell egy szerelvényt, ki kell adnia egy ALTER ASSEMBLY utasítást az adatbázis szerelvényének frissítéséhez. Ez az utasítás frissíti a szerelvényt az implementációt tartalmazó .NET-keretrendszermodulok legújabb példányára.

A WITH UNCHECKED DATA utasítás ALTER ASSEMBLY záradéka arra utasítja az SQL Servert, hogy frissítse azokat a szerelvényeket is, amelyektől az adatbázisban tárolt adatok függnek. Pontosabban meg kell adnia WITH UNCHECKED DATA, ha az alábbiak bármelyike létezik:

  • A szerelvény metódusait közvetlenül vagy közvetve Transact-SQL függvényeken vagy metódusokon keresztül hivatkozó, megőrzött számított oszlopok.

  • A szerelvénytől függő, felhasználó által definiált CLR-típus oszlopai, és a típus egy UserDefined (nemNative) szerializációs formátumot implementál.

Figyelmeztet

Ha nincs megadva WITH UNCHECKED DATA, az SQL Server megpróbálja megakadályozni a ALTER ASSEMBLY végrehajtását, ha az új szerelvényverzió hatással van a táblák, indexek vagy egyéb állandó helyek meglévő adataira. Az SQL Server azonban nem garantálja, hogy a számított oszlopok, indexek, indexelt nézetek vagy kifejezések összhangban lesznek az alapul szolgáló rutinokkal és típusokkal a CLR-szerelvény frissítésekor. Ügyeljen arra, hogy a ALTER ASSEMBLY végrehajtásakor ne legyen eltérés a kifejezés eredménye és a szerelvényben tárolt kifejezésen alapuló érték között.

A záradék használatával csak a db_owner és ALTER ASSEMBLY rögzített adatbázis-szerepkör tagjai hajthatnak végre futtatási WITH UNCHECKED DATA.

Az SQL Server üzenetet küld a Windows-alkalmazás eseménynaplójának, amely szerint a szerelvény nem ellenőrzött adatokkal lett módosítva a táblákban. Az SQL Server ezután megjelöli azokat a táblákat, amelyek a szerelvénytől függő adatokat tartalmaznak, mint amelyek nem ellenőrzött adatokkal rendelkeznek. A has_unchecked_assembly_data katalógusnézet sys.tables oszlopa tartalmazza a nem ellenőrzött adatokat tartalmazó táblák 1 értékét, a nem ellenőrzött adatok nélküli táblák 0.

A nem ellenőrzött adatok integritásának feloldásához futtassa a DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS minden olyan táblán, amely nem ellenőrzött adatokat tartalmaz. Ha DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS sikertelen, törölnie kell a nem érvényes táblázatsorokat, vagy módosítania kell a szerelvénykódot a problémák megoldásához, majd több ALTER ASSEMBLY utasítást kell kiadnia.

ALTER ASSEMBLY módosítja a szerelvény verzióját. A közgyűlés kultúrája és nyilvános kulcsjogkivonata változatlan marad. Az SQL Server nem engedélyezi a szerelvény különböző verzióinak regisztrálását ugyanazzal a névvel, kultúrával és nyilvános kulccsal.

A verziókötésre vonatkozó számítógépszintű szabályzattal való interakciók

Ha az SQL Serverben tárolt szerelvényekre mutató hivatkozásokat a rendszer a közzétevői házirend vagy a számítógépszintű rendszergazdai szabályzat használatával irányítja át adott verziókra, az alábbi műveletek egyikét kell elvégeznie:

  • Győződjön meg arról, hogy az átirányítás új verziója az adatbázisban található.

  • Módosítsa a számítógép vagy a közzétevő házirendjének külső szabályzatfájljaira vonatkozó utasításokat, hogy biztosan hivatkozzon az adatbázisban található adott verzióra.

Ellenkező esetben sikertelen egy új szerelvényverzió betöltése az SQL Server-példányba.

További információ: ALTER ASSEMBLY.