Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2008 अद्वितीय कॉलम जो केस सेंसिटिव है

विशिष्टता को एक अद्वितीय बाधा के साथ लागू किया जा सकता है।

अद्वितीय अनुक्रमणिका केस-संवेदी है या नहीं, यह सर्वर (या तालिका के) संयोजन द्वारा निर्धारित किया जाता है ।

आप इस क्वेरी के साथ अपने डेटाबेस का वर्तमान मिलान प्राप्त कर सकते हैं:

SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation;

और आपको कुछ इस तरह मिलना चाहिए:

SQLCollation
————————————
SQL_Latin1_General_CP1_CI_AS

यहाँ, मिलान के अंत में "CI_AS" का अर्थ है:CI =केस असंवेदनशील, AS =एक्सेंट संवेदनशील।

इसे जो कुछ भी आपको चाहिए उसे बदला जा सकता है। यदि आपके डेटाबेस और/या तालिका में केस-संवेदी संयोजन है, तो मैं अपेक्षा करता हूं कि आपकी अनुक्रमणिका की विशिष्टता केस-संवेदी भी होगी, उदा। आपका abcdef और एबीसीडीईएफ दोनों अद्वितीय स्ट्रिंग के रूप में स्वीकार्य होने चाहिए।

मार्क

अद्यतन:

मैंने अभी यह कोशिश की है (एसक्यूएल सर्वर 2008 डेवलपर संस्करण x64) - मेरे लिए काम करता है (मेरा डेटाबेस आम तौर पर "लैटिन 1_General_CI_AS संयोजन का उपयोग कर रहा है, लेकिन मैं प्रति तालिका/प्रति VARCHAR कॉलम भी एक अलग परिभाषित कर सकता हूं):

CREATE TABLE TestUnique
    (string VARCHAR(50) COLLATE SQL_Latin1_General_Cp1_CS_AS)

CREATE UNIQUE INDEX UIX_Test ON dbo.TestUnique(string)

INSERT INTO dbo.TestUnique(string) VALUES ('abc')
INSERT INTO dbo.TestUnique(string) VALUES ('ABC')

SELECT * FROM dbo.TestUnique

और मैं वापस आ जाता हूँ:

string
ABC
abc

और अद्वितीय अनुक्रमणिका के उल्लंघन के बारे में कोई त्रुटि नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL क्वेरी संग्रहीत कार्यविधि की तुलना में तेज़ी से चलती है

  2. किसी मौजूदा तालिका में डायनामिक कॉलम कैसे जोड़ें

  3. PIVOT और JOIN का एक साथ उपयोग करना

  4. JSON_VALUE () SQL सर्वर में उदाहरण (T-SQL)

  5. मैं विंडोज़ में पर्ल के डीबीआई मॉड्यूल का उपयोग करके एमएसएसक्यूएल डेटाबेस से कैसे जुड़ूं?