无法解析“Latin1_General_CI_AI”和规则“SQL_Latin1_General_CP1_CI_AS”

问题描述:

insert into @temp_traffic_reports(id, assetname,datestamp,messagetype,itemquantity) 
(
    select 
     tf.ID as id, 
     ta.TrackingIdentityName as assetname, 
     DATEADD(hour,@TimeZoneValue,Datestamp) as datestamp , 
     'Poll for position report' as messagetype, 
     '1' as itemquantity 
FROM trackmaps_WHB.dbo.MESForwardMessage tf 
join @temp_assets ta 
    on tf.TerminalID = ta.TrackingIndentity 
where 
    Datestamp between DATEADD(hour,@TimeZoneValue,@fDate) and DATEADD(hour,@TimeZoneValue,@tDate) 
); 

你必须强迫两个排序规则中的一个表的比较

insert into @temp_traffic_reports(id, assetname,datestamp,messagetype,itemquantity) 
(
    select 
     tf.ID as id, 
     ta.TrackingIdentityName as assetname, 
     DATEADD(hour,@TimeZoneValue,Datestamp) as DATES_STAMP , 
     'Poll for position report' as messagetype, 
     '1' as itemquantity 
FROM trackmaps_WHB.dbo.MESForwardMessage tf 
join @temp_assets ta 
    on tf.TerminalID = ta.TrackingIndentity 
CROSS APPLY (SELECT DATES_STAMP) AS A 
WHERE A.DATES_STAMP between DATEADD(hour,@TimeZoneValue,@fDate) and DATEADD(hour,@TimeZoneValue,@tDate) 
) 

insert into @temp_traffic_reports(id, assetname,datestamp,messagetype,itemquantity) 
(
    select 
     tf.ID as id, 
     ta.TrackingIdentityName COLLATE SQL_Latin1_General_CP1_CI_AS as assetname , 
     DATEADD(hour,@TimeZoneValue,Datestamp) as datestamp , 
     'Poll for position report' as messagetype, 
     '1' as itemquantity 
FROM trackmaps_WHB.dbo.MESForwardMessage tf 
join @temp_assets ta 
    on tf.TerminalID = ta.TrackingIndentity 
where 
    Datestamp between DATEADD(hour,@TimeZoneValue,@fDate) and DATEADD(hour,@TimeZoneValue,@tDate) 
之间的排序规则冲突