![]() |
1
2
下面是一个使用表值函数的解决方案:
测试:
here ) 注意 |
![]() |
2
1
不,不可能有可变数量的参数(即
结果是每行3个名称字段中的“最大”值。如您所见,这个方法足够灵活,可以包含任意数量的列。 |
|
3
0
不幸的是,不可能在CLR中使用您想要的签名(params SqlString[]p)声明UDF。自定义项只能有强类型定义的参数列表,当前不支持关键字“params”(我希望将来也会有所改变)。 下面是String.Format UDF的示例。
另一件要记住的事情是.CLR没有方法重载,所以您的UDF需要有唯一的名称。 在UDF的末尾,如果您有/想要无限数量的参数,则无法在.CLR中实现。它只能是固定数量的参数,例如4(如您提到的情况)。 在这种情况下使用CLR over SP的原因是性能更好。但我也要指出的是,这并不意味着你会在使用.CLR时获得更好的性能。在某些情况下,T-SQL/PS的性能会更好。 |