SQL71508:模型已经有一个具有相同名称的元素

时间:2018-05-24 12:44:52

标签: c# sql sql-server tsql

我的项目中有一个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函数,错误就消失了。有什么问题?

1 个答案:

答案 0 :(得分:0)

具有相同名称的对象已存在。你可以找到它是这样的:

SELECT * FROM sys.objects o WHERE o.name ='InsertCampaignRecipients'