CLR具有数组参数的表值函数
我有一个像这样的SQL CLR函数:
public partial class UserDefinedFunctions {
[Microsoft.SqlServer.Server.SqlFunction(TableDefinition = "number int", FillRowMethodName = "FillRow")]
public static IEnumerable MyClrFunction(object obj) {
// read obj array input and then
var result = new ArrayList();
result.Add((SqlInt32)1);
result.Add((SqlInt32)2);
result.Add((SqlInt32)3);
return result;
}
public static void FillRow(object obj, out SqlInt32 number) {
number = (SqlInt32)obj;
}
}
我想用这种方式使用它:
DECLARE @x arrayOfInt
INSERT INTO @x VALUES (10)
INSERT INTO @x VALUES (20)
INSERT INTO @x VALUES (30)
SELECT * FROM dbo.MyClrFunction(@x)
arrayOfInt是:
CREATE TYPE [dbo].[arrayOfInt] AS TABLE(
[item] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[item] ASC
) WITH (IGNORE_DUP_KEY = OFF)
)
我遇到的问题是arrayOfInt与sql_variant不兼容。是否可以编写具有数组(表)参数的CLR表值函数?
没有找到相关结果
已邀请:
1 个回复
断跑胺弄萎
),因为它可以访问本地临时对象 您可以使用传入的表名在您执行的任何SQL中使用临时表 您可以通过对传入的表名执行简单的
将该表中的数据导入.NET上下文,然后通过
和
读取每一行