none
定序問題導致重複的索引鍵 RRS feed

  • 問題

  • 各位好 :

    請問我有一個table的schema如下

    CREATE TABLE [dbo].[Table_2](
     [c1] [varchar](6) NOT NULL,
     CONSTRAINT [PK_Table_2] PRIMARY KEY CLUSTERED
    (  [c1] ASC )
    )

     

    資料庫及table的定序為  Chinese_Taiwan_Stroke_CI_AS

     

    當我insert 下面兩筆資料時,第一筆會成功,第二筆發生會發生

    訊息 2627,層級 14,狀態 1,行 1
    違反 PRIMARY KEY 條件約束 'PK_Table_2'。無法在物件 'dbo.Table_2' 中插入重複的索引鍵。

     

    INSERT INTO [Table_2]([c1])
    VALUES (0xB0F520202020)

     

    INSERT INTO [Table_2]([c1])
    VALUES (0xB0F5A1402020 )

     

    B0F5為中文字 "執" ,A140無此字所以是空白, 2020為空白

     

    但當該table 的欄位定序修改為Latin1_General_CI_AS

    insert 就沒問題,但因為改為英文定序所以顯示成怪異的符號

     

    當欄位為中文定序時,以ASCII CODE 看起來是不同的資料,但INSERT入TABLE時資料庫卻判斷為重複的索引鍵.

    所以要請問於中文定序時,當資料於一般顯示方式看起來相同,但其實ASCII內容看起來不同而產生的重複的索引鍵的情形,此種狀況資料庫是如何做判斷的,及 此種狀況以何種方式解決較為恰當

    感謝

    本人已為此問題所苦很久

    2008年8月1日 上午 02:15

所有回覆