मेरे पास एक अद्वितीय कुंजी के साथ एक तालिका है जिसमें एक NVARCHAR(50)
कॉलम (सही या नहीं, लेकिन वहां है) शामिल है। तो, जब सम्मिलित करने की कोशिश की जा रही है Șc
या C
( डालने के क्रम पर कोई फर्क नहीं पड़ता) तो यह कोलाज के मुद्दों के कारण 2 वें सम्मिलित पर टूट जाता है। यहाँ त्रुटि है:
(1 पंक्ति (ओं) प्रभावित) Msg 2601, स्तर 14, राज्य 1, पंक्ति 16 अद्वितीय सूचकांक 'IX_TestT' के साथ ऑब्जेक्ट 'dbo.testT' में डुप्लिकेट कुंजी पंक्ति सम्मिलित नहीं कर सकता। डुप्लिकेट कुंजी मान (C) है।
रिटर्न का चयन करें:
डाटाबेस डिफ़ॉल्ट मिलान है Latin1_General_CI_AS
। पहले से मौजूद संरचना को बहुत अधिक बदलने के बिना, इसे हल करने के तरीके को देखने में कुछ समय बिताया, लेकिन काम करने का एक तरीका नहीं मिल सकता है। अलग-अलग टकराव और संयोजन की कोशिश की, सब कुछ विफल हो जाता है। चरित्र विस्तार के बारे में ( यहां और यहां ) पढ़ें , और इसी तरह, अभी भी अटके हुए हैं। यहां एक नमूना कोड है जिसका उपयोग मैं इस समस्या को दोहराने के लिए कर रहा हूं, जो कुछ भी इसे सुलझाने में मदद कर सकता है उसे संशोधित करने और सिफारिश करने के लिए स्वतंत्र महसूस करें।
CREATE TABLE testT (
[Default_Collation] [NVARCHAR] (50) COLLATE DATABASE_DEFAULT,
[Latin1_General_CI_AS] [NVARCHAR] (50) COLLATE Latin1_General_CI_AS,
[Latin1_General_CI_AI] [NVARCHAR] (50) COLLATE Latin1_General_CI_AI,
[SQL_Collation] [NVARCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS);
CREATE UNIQUE CLUSTERED INDEX [IX_TestT] ON [dbo].[testT] ([Default_Collation])
ON [PRIMARY]
GO
INSERT INTO testT
SELECT N'Șc', --COLLATE Latin1_General_CI_AS
N'Șc', --COLLATE Latin1_General_CI_AS
N'Șc', --COLLATE Latin1_General_CI_AS
N'Șc' --COLLATE Latin1_General_CI_AS
INSERT INTO testT
SELECT N'C' --COLLATE Latin1_General_CI_AS
,N'C' --COLLATE Latin1_General_CI_AS
,N'C' --COLLATE Latin1_General_CI_AS
,N'C' --COLLATE SQL_Latin1_General_CP1_CI_AS
SELECT * FROM testT;
DROP TABLE testT;