В настоящее время я использую код вида
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, который был возможен, потому что заголовки, содержащиеся в таблицах, были постоянными.
Однако,Теперь я столкнулся с конфликтом сопоставления между двумя таблицами, где заголовки таблиц не являются постоянными.Как я могу решить эту проблему?
Одним из возможных решений, которое я могу придумать, является циклический просмотр заголовков таблицы для ##Temp1
в таблице tempdb.dbo
и динамическая генерация строки, которая задает заголовки столбцов, используемые ввременные таблицы.Однако это кажется излишне неуклюжим.