函数与存储过程作为外部名称属性

问题描述 投票:0回答:1

我正在尝试将现有的.dll文件映射到SQL Server,为此,我创建了一个程序集,然后使用create procedure语法和external关键字。

我们可以使用创建功能脚本来实现相同的功能吗?如果没有,请让我知道何时使用函数或存储过程来进行相同的操作。

create function ConvertToText
    (@Resume varbinary(max))
return varchar(8000)
as external name Conversions.Sqlconversions.ConvertToText


create procedure ConvertToText
    (@Resume  varbinary(max))
as external name Conversions.Sqlconversions.ConvertToText

是否完全取决于是否存在相同的返回值?

sql-server function stored-procedures dll
1个回答
0
投票

取决于您如何装饰CLR程序集中的方法。

映射存储过程时,您将使用create procedure,例如:

  [Microsoft.SqlServer.Server.SqlProcedure]  
  public static int PriceSum(out SqlInt32 value)  
  {
    //...
  }

在映射用户定义的函数时,您将使用create function,例如:

  //Scalar User-Defined Function
  [Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)]
  public static int ReturnOrderCount()
  {
    return 1 + 47;
  }

  //Table-Valued User-Defined Function
  [Microsoft.SqlServer.Server.SqlFunction(FillRowMethodName = "FillRow")]
  public static IEnumerable FindInvalidEmails(SqlDateTime modifiedSince)
  {
    return Something_Something_IEnumerable;
  }

参考:

© www.soinside.com 2019 - 2024. All rights reserved.