我刚刚从我的客户那里收到了一个应用程序的源代码和数据库(它是由来自不同国家的另一家公司开发的),并且该应用程序抛出了一些与对象整理相关的异常:
无法解决 equal to 操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS”之间的排序规则冲突。
我看到,在我的情况下,这是由于存储过程创建了一个 #temp 表并且该#temp
表用于与应用程序中的表(应用程序数据库使用SQL_Latin1_General_CP1_CI_AS
和tempdb
使用Latin1_General_CI_AS
)进行比较时引起的。
我加入COLLATE SQL_Latin1_General_CP1_CI_AS
的CREATE TABLE #TEMPTABLE
声明,但是这个数据库有很多存储过程可以使用#temp
表。
如何在不破坏其他数据库/应用程序的情况下更快地解决这个问题?
我们目前正在使用 ALL_IND_COLUMNS 来检查索引是否存在通过其名称或它正在使用的列。问题是我们只能检查索引是否存在特定顺序的列。
我们需要检查一个表是否有任何名称的索引,但 Column1、Column2 和 Column3 的顺序是任意的。我们应该怎么做?