KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Assume the assembly dll: 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); } } } Note : Target the assembly to .NET 3.5 as SQL Server doesn't support .NET 4.0 Copy the assembly to a location, and "creating" the assembly works fine: CREATE ASSEMBLY CLRFunctions FROM 'c:\Program Files\My App\CLRFunctions.dll'; Note: And then enable CLR functions, otherwise they are broken by default : sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'clr enabled', 1; GO RECONFIGURE; GO Created the user-defined function fails: CREATE FUNCTION NormalizeString(@s nvarchar(max), @normalizationForm varchar(50)) RETURNS nvarchar(max) AS EXTERNAL NAME CLRFunctions.T.NormalizeString fails with error: Msg 6505, Level 16, State 2, Procedure NormalizeString, Line 1 Could not find Type 'T' in assembly 'CLRFunctions'. Why can SQL Server not find type T in assembly CLRFunctions ? <img src="https://i.
Tags (comma-separated)
Save Edits
Cancel