当两个服务器没有相同的排序规则时,我通常在列名后使用COLLATE。我从中提取数据的链接服务器是“ Latin1_General_CI_AS”,插入链接服务器数据的目标服务器是“ SQL_Latin1_General_CP1_CI_AS”。
我已尝试在下面的代码中进行COLLATE,但未成功。我无法更改表排序规则,因为从属表指向它们。我将不得不重建表,目前这不是一个选择。
第468消息,第16层,状态9,第2055行 等于操作无法解决“ SQL_Latin1_General_CP1_CI_AS”和“ Latin1_General_CI_AS”之间的排序规则冲突。
TRUNCATE TABLE [DAT_Table]
INSERT INTO [DAT_Table]
([Entity]
,[Identifier]
,[Name]
,[Description]
,[PayType])
SELECT
HRORGANIZATION COLLATE SQL_Latin1_General_CP1_CI_AS
,STEPANDGRADESCHEDULE COLLATE SQL_Latin1_General_CP1_CI_AS
,DESCRIPTION COLLATE SQL_Latin1_General_CP1_CI_AS
,CONVERT(VARCHAR(10), STEPANDGRADEVERSION, 111) COLLATE SQL_Latin1_General_CP1_CI_AS
,CASE WHEN [PAYRATETYPE] = '1' THEN 'H' COLLATE SQL_Latin1_General_CP1_CI_AS WHEN [PAYRATETYPE] = '2' THEN 'S' COLLATE SQL_Latin1_General_CP1_CI_AS END AS PayType
FROM [LinkedServer].[CS_Table]