ver una tipo tablas tabla requieren recreación realizado que puedo permitir permite modificar los log impedir guardar dato cambios sql-server sql-server-2008-r2 user-defined-functions sqlclr

sql-server - una - tipo de dato uniqueidentifier sql server



SQL Server: no se pudo encontrar el tipo en el ensamblado (1)

Tratar

CREATE FUNCTION NormalizeString(@s nvarchar(max), @normalizationForm nvarchar(50)) RETURNS nvarchar(max) AS EXTERNAL NAME CLRFunctions.[CLRFunctions.T].NormalizeString

Supongamos el dll de ensamblaje:

using Microsoft.SqlServer.Server; using System.Data.SqlClient; using System.Data.SqlTypes; using System; using System.Text; namespace CLRFunctions { public class T { [SqlFunction(DataAccess = DataAccessKind.Read)] public static String NormalizeString(String s, String normalizationForm) { NormalizationForm form = NormalizationForm.FormC; if (String.Equals(f, "FormD", StringComparison.OrdinalIgnoreCase)) form = NormalizationForm.FormD; return = s.Normalize(form); } } }

Nota : Dirija el ensamblado a .NET 3.5 ya que SQL Server no es compatible con .NET 4.0

Copie el ensamblaje en una ubicación y "crear" el ensamblaje funciona bien:

CREATE ASSEMBLY CLRFunctions FROM ''c:/Program Files/My App/CLRFunctions.dll'';

Nota: Y luego habilite las funciones CLR; de lo contrario, se broken by default :

sp_configure ''show advanced options'', 1; GO RECONFIGURE; GO sp_configure ''clr enabled'', 1; GO RECONFIGURE; GO

Creado la función definida por el usuario falla:

CREATE FUNCTION NormalizeString(@s nvarchar(max), @normalizationForm varchar(50)) RETURNS nvarchar(max) AS EXTERNAL NAME CLRFunctions.T.NormalizeString

falla con error:

Msg 6505, Level 16, State 2, Procedure NormalizeString, Line 1 Could not find Type ''T'' in assembly ''CLRFunctions''.

¿Por qué SQL Server no puede encontrar el tipo T en las CLRFunctions ensamblaje CLRFunctions ?

Nota : ¿Por qué T ? Porque Microsoft lo hizo.