Olvasás angol nyelven

Megosztás a következőn keresztül:


CLR-függvények létrehozása

A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók

Létrehozhat egy adatbázis-objektumot az SQL Server egy példányán belül, amely a .NET-keretrendszer közös nyelvi futtatókörnyezetében (CLR) létrehozott szerelvényben van programozva. A közös nyelvi futtatókörnyezet által biztosított gazdag programozási modellt használó adatbázis-objektumok közé tartoznak az összesítő függvények, a függvények, a tárolt eljárások, az eseményindítók és a típusok.

A CLR-függvény SQL Serverben való létrehozása a következő lépéseket foglalja magában:

  • Definiálja a függvényt egy osztály statikus metódusaként a .NET-keretrendszer által támogatott nyelven. A függvények közös nyelvi futtatókörnyezetben való programozásával kapcsolatos további információkért lásd CLR felhasználó által definiált függvényeket. Ezután fordítsa le az osztályt egy szerelvény összeállításához a .NET-keretrendszerben a megfelelő nyelvi fordító használatával.

  • Regisztrálja a szerelvényt az SQL Serveren a CREATE ASSEMBLY utasítással. További információ az SQL Server-szerelvényekről: szerelvények (adatbázismotor).

  • Hozza létre a regisztrált szerelvényre hivatkozó függvényt a CREATE FÜGGVÉNY utasítással.

A CLR-kód végrehajtása alapértelmezés szerint ki van kapcsolva az SQL Serveren. Létrehozhat, módosíthat és elvethet olyan adatbázis-objektumokat, amelyek felügyelt kódmodulokra hivatkoznak, de ezek a hivatkozások nem futnak az SQL Serveren, kivéve, ha a clr engedélyezve van kiszolgálókonfigurációs beállítás engedélyezve van a sp_configurehasználatával.

Az SQL Server-projekt Visual Studióban való üzembe helyezése regisztrál egy szerelvényt a projekthez megadott adatbázisban. A projekt üzembe helyezése clR-függvényeket is létrehoz az adatbázisban az SqlFunction attribútummal jegyzett összes metódushoz. További információ: CLR-adatbázisobjektumok üzembe helyezése.

Külső erőforrások elérése

A CLR-függvényekkel külső erőforrásokhoz, például fájlokhoz, hálózati erőforrásokhoz, webszolgáltatásokhoz és más adatbázisokhoz (beleértve az SQL Server távoli példányait) is hozzáférhet. A CLR-függvények különböző osztályokat használhatnak a .NET-keretrendszerben, például System.IO, System.WebServices, System.Sqlstb. Az ilyen függvényeket tartalmazó szerelvényt legalább az erre a célra beállított EXTERNAL_ACCESS engedéllyel kell konfigurálni. További információ: CREATE ASSEMBLY.

Az SQL-ügyfél által felügyelt SQL-szolgáltató az SQL Server távoli példányainak eléréséhez használható. A CLR-függvények azonban nem támogatják az eredeti kiszolgálóhoz való visszacsatolási kapcsolatokat.

Szerelvények létrehozása, módosítása vagy elvetése az SQL Serveren

CLR-függvény létrehozása

Natív kód elérése

A CLR-függvények a felügyelt kódból származó PInvoke használatával hozzáférhetnek a natív (nem felügyelt) kódhoz( például C vagy C++ nyelven írt kódhoz) (részletekért lásd natív függvények meghívása felügyelt kódból). Újra felhasználhatja az örökölt kódot CLR-UDF-ként, vagy írhat teljesítménykritikus UDF-eket natív kódban, és UNSAFE szerelvény használatát igényli. A UNSAFE szerelvények használatával kapcsolatos óvintézkedésekről lásd a Kódhozzáférési biztonság CLR-integrációját.