A continuacion ejemplos y pasos a seguir para el uso de CLR.
1. Habilitar SQL CLR
sp_configure 'clr_enabled', 1
RECONFIGURE
O bien de manera visual desde SQL Server Surface Area Configuration
2. Crear un proyecto en Visual Studio de tipo Class Library.
3. Definir los nombres de espacio
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
4. Estamos listos para crear Funciones, Procedimientos o tipos de Datos.
A continuacion un ejemplo de Funciones y Procedimientos con acceso a ADO.NET
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Public Class Data
Public Shared Function HolaSQLCLR() As Integer
Return "Informacion a Regresar. Hola Mundo"
End Function
Public Shared Sub GetProductos()
'Dim conn As New SqlConnection("context connection=true")
Dim conn As New SqlConnection("Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=123")
conn.Open()
Dim cmd As New SqlCommand("SELECT ProductID, ProductName, QuantityPerUnit " & _
"FROM Products ORDER BY ProductName", conn)
Dim reader As SqlDataReader
reader = cmd.ExecuteReader
Dim oPipe As SqlPipe
oPipe = SqlContext.Pipe
oPipe.Send(reader)
oPipe.Send("Resultados enviados al cliente")
End Sub
End Class
5. Registrar la DLL en nuestro servidor.
CREATE ASSEMBLY MyDLL FROM 'c:\MyDll.dll'
6. Crear los procedimientos o funciones.
CREATE PROC sp_clr
AS EXTERNAL NAME MyDLL.[Clientes.Data].GetProductos
CREATE FUNCTION dbo.fxDatos()
RETURNS INT
EXTERNAL NAME MyDLL.[Clientes.Data].GetCustomers
7. Ejecutarlos tal y cual se ejecutan con T-SQL
exec sp_clr;
select dbo.fxDatos()