我想使用可编入索引的C#创建自己的UDT。不幸的是,它必须有自己的序列化,它不能是字节顺序(因为这个UDT注定要包含许多双值)。
如何实施自己的比较?
MSDN声称实现Icomparable仅影响客户端的比较,SQL Server不会使用它。
答案 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);