2011-04-21 30 views
1

即時得到不同的對象不同的排序規則在數據庫中...整理問題

  • 整理表是「SQL_SwedishStd_Pref_CP1_CI_AS」
  • 整理存儲過程的是「SQL_Latin1_General_CP1_CI_AS」

哪個執行查詢時產生問題。 有人可以幫我嗎?

在此先感謝

+0

什麼問題,你遇到?你有這個問題嗎? – 2011-04-21 08:01:34

+0

''無法解決類似操作中「SQL_SwedishStd_Pref_CP1_CI_AS」和「SQL_Latin1_General_CP1_CI_AS」之間的排序規則衝突。''..這是執行存儲過程時得到的錯誤消息 – 2011-04-21 08:27:50

回答

3

您必須根據其指定整理你希望做的加入(或where子句)

見下面關於如何編寫這個例子。

create table x(id int, name varchar(256) collate SQL_SwedishStd_Pref_CP1_CI_AS) 
create table y(id int, name varchar(256) collate SQL_Latin1_General_CP1_CI_AS) 

insert into x values (1, 'Filip') 
insert into y values (1, 'Filip') 

所以,如果你想加入基於Latin1的整理你寫這樣的查詢:

select * 
    from x 
    join y 
    on x.name collate SQL_Latin1_General_CP1_CI_AS = y.name 

如果您想加入基於瑞典校對你寫這樣的查詢:

select * 
    from x 
    join y 
    on x.name = y.name collate SQL_SwedishStd_Pref_CP1_CI_AS 

如果通過錯誤定義表格創建了歸類差異,則可以更改列以切換歸類:

alter table x alter column name varchar(256) collate SQL_Latin1_General_CP1_CI_AS 

如果再像這樣運行的查詢,將不會出現更多的錯誤:

select * 
    from x 
    join y 
    on x.name = y.name