33

Giả dll lắp ráp:SQL Server: Không thể tìm thấy loại trong lắp ráp

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: Nhắm lắp ráp để NET 3.5 như SQL Server không hỗ trợ .NET 4.0

sao chép lắp ráp đến một vị trí, và "tạo ra" hội đồng hoạt động tốt:

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

Lưu ý: và sau đó kích hoạt CLR chức năng, nếu không họ là brokenbydefault:

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

Tạo chức năng người dùng định nghĩa thất bại:

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

thất bại với lỗi:

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

Tại sao có thể SQL Server không tìm thấy loại T trong lắp ráp CLRFunctions?

enter image description here

Note: Tại sao T? Cause Microsoft did.

Trả lời

73

Hãy thử

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

Great câu trả lời - điều này đã gây cho tôi la hét những lời tục tĩu tại SSMS. –

+3

trong năm 2010, mẫu mặc định không đặt không gian tên theo mặc định và do đó tên lớp đầy đủ của tôi không chính xác. ký hiệu là: RegisteredAssemblyName. [FullyQualifiedClassName] .FunctionName –

+0

Cảm ơn câu trả lời của bạn đã giúp tôi. –

Các vấn đề liên quan