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
?
Note: Tại sao T
? Cause Microsoft did.
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. –
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 –
Cảm ơn câu trả lời của bạn đã giúp tôi. –