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