我当前正在使用以下格式的代码
SELECT * FROM ##Temp1
UNION
SELECT * FROM ##Temp2
(由于临时表是从2个不同数据库中的表填充的,每个数据库使用不同的排序规则)会导致错误消息
Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the UNION operation.
直到现在,当遇到诸如此类的错误时,我一直在使用COLLATE DATABASE_DEFAULT方法,这是可能的,因为表中包含的标题是恒定的。
但是,我现在面临2个表之间的排序规则冲突,其中表标题不是恒定的。我该如何解决这个问题?
我想到的一种可能的解决方案是遍历##Temp1
表中tempdb.dbo
的表头,并动态生成一个字符串,该字符串指定临时表中使用的列标题。但是,这似乎不必要地笨拙。