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

फ़ील्ड मान अद्वितीय होना चाहिए जब तक कि यह NULL न हो

मैं एक इंडेक्स के साथ एक दृश्य बनाता हूं जो जहां खंड के माध्यम से नल को अनदेखा करता है ... यानी। यदि आप तालिका में शून्य डालते हैं तो दृश्य परवाह नहीं करता है लेकिन यदि आप एक गैर शून्य मान डालते हैं तो दृश्य बाधा को लागू करेगा।

create view dbo.UniqueAssetTag with schemabinding
as
select asset_tag
from dbo.equipment
where asset_tag is not null

GO

create unique clustered index ix_UniqueAssetTag
on UniqueAssetTag(asset_tag)

GO

तो अब मेरी उपकरण तालिका में एक एसेट_टैग कॉलम है जो कई नल की अनुमति देता है लेकिन केवल अद्वितीय गैर शून्य मान देता है।

नोट:यदि mssql 2000 का उपयोग कर रहे हैं, तो आपको "ARITHABORT ON सेट करना होगा। " टेबल पर किसी भी इंसर्ट, अपडेट या डिलीट के ठीक पहले किया जाता है। निश्चित रूप से mssql 2005 और बाद में इसकी आवश्यकता नहीं है।



  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. SQL सर्वर:XML आउटपुट के साथ दो-स्तरीय GROUP BY

  3. एक कॉलम (टी-एसक्यूएल) में एकाधिक मान कैसे वापस करें?

  4. 64 बिट ओडीबीसी अपवाद

  5. SQL सर्वर एक अंडरस्कोर से बचता है