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

SQL सर्वर में चेक बाधा क्या है - SQL सर्वर / TSQL ट्यूटोरियल भाग 82

चेक बाधा क्या है:

चेक बाधाएं उन मानों को सीमित करती हैं जो एक या अधिक स्तंभों द्वारा स्वीकार किए जाते हैं।


आइए वास्तविक समय परिदृश्य के साथ चेक बाधा को समझते हैं।

आप SQL सर्वर डेवलपर के रूप में काम कर रहे हैं, आपको dbo.Customer तालिका बनाने की आवश्यकता है जिसमें FName, LName और पता जैसे कॉलम होने चाहिए। जैसा कि FName VARCHAR होने जा रहा है, इसलिए उपयोगकर्ता स्ट्रिंग मान सम्मिलित कर सकते हैं जिनमें अक्षर, संख्यात्मक और अन्य वर्ण हो सकते हैं। आप एक चेक बाधा लिखना चाहते हैं ताकि FName केवल अक्षर स्वीकार करे।

समाधान:

आइए नीचे दी गई स्क्रिप्ट का उपयोग करके चेक बाधा के साथ तालिका बनाएं

--Create Table with 
use YourDatabaseName
go
Create table dbo.Customer
(
FName VARCHAR(100) Not Null,
LName VARCHAR(100),
StreetAddress VARCHAR(255),
Check (FName not like '%[^a-z]%')
)
 
आइए तालिका में कुछ रिकॉर्ड डालें और देखें कि क्या हमारी चेक बाधा अपेक्षा के अनुरूप काम कर रही है। इसे केवल उन रिकॉर्ड्स को डालने देना चाहिए जिनमें FName में केवल अक्षर होते हैं।

--insert some sample records
insert into dbo.Customer
(FName,LName,StreetAddress)
Values ('Aamir','Shahzad','xyz address')
go
insert into dbo.Customer
(FName,LName,StreetAddress)
Values ('Aamir4','Shahzad','xyz address')
go
insert into dbo.Customer
(FName,LName,StreetAddress)
Values ('abc3c','Shahzad','xyz address')
go
insert into dbo.Customer
(FName,LName,StreetAddress)
Values ('-tName','Shahzad','xyz address')
 जब मैंने ऊपर सम्मिलित स्क्रिप्ट निष्पादित की, तो मुझे SQL सर्वर से प्राप्त संदेश नीचे दिए गए हैं।

(1 पंक्ति (प्रभावित))
संदेश 547, स्तर 16, राज्य 0, पंक्ति 18
INSERT कथन CHECK बाधा "CK__Customer__FName__5FB337D6" के विपरीत है। डेटाबेस "YourDatabaseName", तालिका "dbo.Customer", कॉलम 'FName' में विरोध हुआ।
विवरण समाप्त कर दिया गया है।
संदेश 547, स्तर 16, राज्य 0, पंक्ति 22
INSERT कथन CHECK बाधा "CK__Customer__FName__5FB337D6" का विरोध करता है। डेटाबेस "YourDatabaseName", तालिका "dbo.Customer", कॉलम 'FName' में विरोध हुआ।
विवरण समाप्त कर दिया गया है।
संदेश 547, स्तर 16, राज्य 0, पंक्ति 26
INSERT कथन CHECK बाधा "CK__Customer__FName__5FB337D6" का विरोध करता है। डेटाबेस "YourDatabaseName", तालिका "dbo.Customer", कॉलम 'FName' में विरोध हुआ। FName, शेष रिकॉर्ड्स को हमारी चेक बाधा द्वारा अस्वीकार कर दिया जाता है क्योंकि उनमें अक्षर के अलावा अन्य वर्ण होते हैं।

आइए तालिका में डेटा की जांच करके सुनिश्चित करें कि केवल एक रिकॉर्ड डाला गया है।
SQL सर्वर में चेक बाधा क्या है और SQL सर्वर में चेक बाधा कैसे बनाएं

वीडियो डेमो:चेक बाधा क्या है और SQL सर्वर में चेक बाधा कैसे बनाएं

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Azure वर्चुअल मशीन पर SQL Server 2014 चलाना

  2. T-SQL का उपयोग करके SQL सर्वर डेटाबेस का बैकअप कैसे लें

  3. SQL सर्वर में "COALESCE के लिए कम से कम एक तर्क एक अभिव्यक्ति होना चाहिए जो NULL स्थिरांक नहीं है" ठीक करें

  4. एक अस्थायी तालिका में गतिशील रूप से जेनरेट की गई पिवट-तालिका प्राप्त करना

  5. SQL सर्वर (T-SQL) में डेटाबेस मेल कतारों की स्थिति की जाँच करें