У меня есть функция CLR в моем проекте: я определил функцию как статический метод класса на языке, поддерживаемом .NET Framework.Затем скомпилировал класс для сборки сборки.
[SqlFunction]
public static SqlString InsertCampaignRecipients(SqlString url)
{
var rowData = string.Empty;
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync(new Uri(url.Value)).Result;
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
if (result.IndexOf(@"""Exception"":null}") > 0) //success
{
rowData = "success";
}
else
{
rowData = string.Empty;
}
}
else
{
rowData = string.Empty;
}
}
return rowData;
}
Затем я создал функцию, которая ссылается на зарегистрированную сборку, используя инструкцию CREATE FUNCTION:
CREATE FUNCTION [dbo].[InsertCampaignRecipients] (@url NVARCHAR (4000) NULL)
RETURNS NVARCHAR (4000)
AS
EXTERNAL NAME [SmartTouch.CRM.SqlClrDb].[UserDefinedFunctions].[InsertCampaignRecipients]
И у меня ошибка:
SQL71508: модель уже имеет элемент с таким же именем dbo.InsertCampaignRecipients
Но если я переименую свою функцию SQL, ошибка исчезнет.В чем проблема?