Tworzenie funkcji CLR

You can create a database object inside an instance of SQL Server that is programmed in an assembly created in the Microsoft .NET Framework common language runtime (CLR).Obiekty bazy danych, wykorzystujące sformatowanego model programowania, dostarczone przez common language runtime to wartość zagregowana funkcje, funkcje, procedur przechowywanych, wyzwalaczy i typów.

Tworzenie funkcja CLR w SQL Server obejmuje następujące etapy:

  • Definiowanie funkcja jako statyczna metoda klasy w języku obsługiwanym przez .NET Framework.Aby uzyskać więcej informacji na temat funkcji aparatu plików wykonywalnych języka wspólnego programu, zobacz CLR funkcje zdefiniowane przez użytkownika.Następnie Kompiluj klasy tworzenia wirtualny plik dziennika w .NET Framework za pomocą kompilatora odpowiedniego języka.

  • Zarejestrować wirtualny plik dziennika w SQL Server za pomocą tworzenia wirtualny plik dziennika instrukcja.Więcej informacji o zestawach w SQL Server, zobacz Zestawy (aparat bazy danych).

  • Utwórz funkcja, która odwołuje się do zarejestrowanego wirtualny plik dziennika przy użyciu funkcja tworzenia instrukcja.

Ostrzeżenie

Deploying a SQL Server Project in Microsoft Visual Studio registers an assembly in the database that was specified for the project.Wdrażanie projektu tworzy również funkcje CLR w bazie danych dla wszystkich metod adnotacje z SqlFunction atrybut.Aby uzyskać więcej informacji, zobacz Wdrażanie CLR obiektów bazy danych.

Ostrzeżenie

Zdolność SQL Server wykonać kodu CLR jest wyłączona domyślnieMożna tworzyć, zmieniać i upuszczać obiekty odwołujące się do modułów kod zarządzany, ale te odwołania nie będą wykonać w SQL Server chyba że clr włączona opcja jest włączone za pomocą sp_configure (języka Transact-SQL).

Uzyskiwanie dostępu do zasobów zewnętrznych

Funkcje CLR mogą być używane do dostępu do zasobów zewnętrznych, takich jak pliki zasobów sieciowych usług sieci Web innych baz danych (włącznie z wystąpieniami zdalnego SQL Server).Można to osiągnąć przy użyciu różnych klas w .NET Framework, takich jak System.IO, System.WebServices, System.Sqli tak dalej.wirtualny plik dziennika, który zawiera takie funkcje, należy skonfigurować co najmniej z uprawnieniem EXTERNAL_ACCESS wirtualny plik dziennika do tego celu.Aby uzyskać więcej informacji, zobacz Tworzenie zestawu (Transact-SQL).Dostawca zarządzany klienta SQL można uzyskać dostęp do zdalnych wystąpień SQL Server.Sprzężenie zwrotne połączeń pochodzących z serwerem nie są obsługiwane w funkcjach CLR.

Aby utworzyć, zmodyfikować lub upuszczać zestawy w programie SQL Server

Aby utworzyć funkcja CLR

Dostęp do kodu macierzystego

Funkcje CLR mogą być używane do dostępu do kodu (niezarządzanych) macierzystego, takie jak kod napisany w c lub C++, przez użycie funkcji PInvoke z kod zarządzany (zobacz Wywołaniem macierzystych funkcji z kod zarządzany szczegóły).To pozwala na ponowne używanie starszego kodu jako CLR UDFs lub napisać UDFs wydajność krytycznych z kodem macierzystym.Wymaga to niebezpieczne wirtualny plik dziennika.Zobacz Zabezpieczenia dostępu do kodu integracji CLR dla ostrzeżenia dotyczące stosowania niebezpiecznych zespołów.