我尝试从ASE 15.5
中MSSQL 2008
获取与tableA
相同的功能,但不区分大小写。
排序顺序必须保持二进制,以便应用程序在标准模式下工作,但新表 - 产品的增强功能具有外键,我希望它们不区分大小写。
也就是说,如果ABC
的值为tableB
,则tableA
应该能够在aBc
上设置外键并插入值create nonclustered index myindex on mytable(**upper**(mycolumn))
。< / p>
通过这样做,我能够通过索引来解决类似的问题:
select * from mytable where upper(mycolumn) = upper('My Value')
如果我这样做,索引现在用于进行不区分大小写的匹配:
{{1}}
但我无法弄清楚如何处理不区分大小写的外键。
非常感谢任何帮助。 谢谢
答案 0 :(得分:1)
我认为您需要在新表上编写更新和插入触发器,以对父表列进行相应的检查。 Transact-SQL指南的Chapter 20应该具有完成该任务所需的信息。
答案 1 :(得分:0)
这应该有效
create nonclustered index myindex on mytable(upper(mycolumn))
当你运行这个
时select * from mytable where upper(mycolumn) = upper('My Value')
<{1>}在query plan
中,您将在查询计划中看到索引myindex
。它仅适用于sybase 15