如何比较非字节排序的UDT?

时间:2013-07-26 12:15:08

标签: sql-server user-defined-types

我想使用可编入索引的C#创建自己的UDT。不幸的是,它必须有自己的序列化,它不能是字节顺序(因为这个UDT注定要包含许多双值)。

如何实施自己的比较?

MSDN声称实现Icomparable仅影响客户端的比较,SQL Server不会使用它。

1 个答案:

答案 0 :(得分:0)

编写CLR函数,然后在SQL Server中注册为用户定义函数,而不是进行典型比较(即A< B)。假设你编写一个函数,如果A< B,如果A = B,则为0;如果A> B,则为1。 B.然后你的比较成为

WHERE (myUserDefinedComparisonFunction(A, B) < 1)

事实上,如果你继续使用你的类型实现IComparable你的CLR比较代码就会变成

  

返回A.CompareTo(B);