sql-server-CLR UDF返回Varbinary(MAX)

SQL CLR用户定义函数是否可以返回数据类型varbinary(MAX)?

在文档中它提到:

“从标量值函数返回的输入参数和类型可以是SQL Server支持的任何标量数据类型,行版本,文本,ntext,图像,时间戳,表或游标除外.” -他们没有提到varbinary,但我不确定…

我从.NET端获取一些字节数组数据,需要从CLR返回到SQL Server,并且我试图避免必须使用存储过程的输出参数来完成此操作(这就是我的处理方式)现在正在测试中).

谢谢!

最佳答案
如果将其定义为返回SqlBytes数据类型,则应正确映射到SQL Server中的varbinary(MAX).

[SqlFunction]
public static SqlBytes Function1()
{
    return new SqlBytes(Encoding.UTF8.GetBytes("Hello world."));
}

虽然您也可以使用SqlBinary数据类型,但是如果通过Visual Studio进行部署,它将被映射到varbinary(8000)而不是varbinary(MAX)上.

转载注明原文:sql-server-CLR UDF返回Varbinary(MAX) - 代码日志