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.