33

असेंबली डीएल मानें:SQL सर्वर: असेंबली में प्रकार नहीं मिला

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); 
     } 
    } 
} 

नोट: असेंबली को .NET 3.5 पर लक्षित करें क्योंकि SQL सर्वर समर्थित नहीं है .NET 4.0

असेंबली को किसी स्थान पर कॉपी करें, और "बनाना" असेंबली ठीक काम करता है:

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

नोट: और उसके बाद सीएलआर फ़ंक्शंस सक्षम करें, अन्यथा वे brokenbydefault:

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

बनाया गया उपयोगकर्ता-परिभाषित फ़ंक्शन विफल रहता है:

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

त्रुटि के साथ विफल रहता है:

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

SQL सर्वर को CLRFunctions असेंबली CLRFunctions में क्यों नहीं मिल सकता है?

enter image description here

नोट: T क्यों? Cause Microsoft did.

उत्तर

73

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

महान जवाब का प्रयास करें - यह मेरे SSMS पर अश्लीलता परोसने चिल्लाना पैदा कर रहा था। बनाम 2010 में –

+3

डिफ़ॉल्ट टेम्पलेट डिफ़ॉल्ट रूप से नेमस्पेस नहीं डालता है और इसलिए मेरा पूरी तरह योग्य क्लास नाम गलत था। नोटेशन है: पंजीकृत Assembly नाम। [FullyQualifiedClassName]। FunctionName –

+0

धन्यवाद आपके उत्तर ने मेरी मदद की। –

संबंधित मुद्दे