Lesson 11 SQL Check Constraint in Hindi
इस वीडियो SQL Check Constraint के बारेमे सीखेंगे
सबसे पहेले एक table बना लेते
है और थोड़े Record Insert कर लेते है.
Create table
tblStudentResult
(
Id int primary key identity(1,1),
Name nvarchar(100),
TotalMarks
int
)
insert into
tblStudentResult Values('Kiran', 34)
insert into
tblStudentResult Values('Yash', 23)
insert into
tblStudentResult Values('Palak', 15)
insert into
tblStudentResult Values('Meena', 42)
insert into
tblStudentResult Values('Het', 29)
Select * From tblStudentResult
तो ये हमारा Table इस तरह से बनेगा.
इसमें ToatalMarks Column
का DataType int है अतः हम उसमे (-2,147,483,648) to (2,147,483,647) कोई भी
value Store कर सकते है.
जैसे की में एक
record इन्सर्ट करता हु.
insert into tblStudentResult Values('Kavi', -99)
देखिये यहाँ पर Invalid
Data इन्सर्ट हो गया है.
Student के TotalMarks कभी
-99 नहीं हो सकते
अब आप अगर चाहते
हो की मेरे TotalMarks कोलम के अंदर केवल 0 से 50 के बिच के ही नम्बर Insert हो
इनके आलावा दूसरा कोई भी Number Add ना हो. क्या हम ऐसा कर सकते है ?
हा ! SQL में आप Check Constraint की मदद से कॉलम के
ऊपर Condition लगा सकते है. अगर Condition का परिणाम True होता है तो Data Insert
होगा नहीं तो Invalid Data इन्सर्ट नहीं होगा Error throw होगी.
तो आइये हम Check
Constraint एड करते है.
Alter table
tblStudentResult
Add Constraint
CK_tblStudentResult_TotalMarks
CHECK (TotalMarks >=0 AND
TotalMarks < 51)
एरर आ रही है
क्योकि हमारे Table में पहेले से ही Invalid डेटा पड़ा है. पहेले हमें उसे निकाल ना
पड़ेगा
Delete from tblStudentResult Where Id=6
Invalid डेटा वाली रो Delete हो गयी है अब
फिरसे प्रयत्न करते है.
Alter table
tblStudentResult
Add Constraint
CK_tblStudentResult_TotalMarks
CHECK (TotalMarks >=0 AND TotalMarks <
51)
Command(s) completed
successfully.
देखिये अब Command(s) completed successfully का मेसेज मील गया. और आप Object Explorer में भी उसे देख सकते है.
अब ये Record इन्सर्ट करते
है.
insert into tblStudentResult Values('Kavi', -99)
देखिये Invalid Data
इन्सर्ट नहीं हो रहा है. Error throw हो रही है.
The INSERT
statement conflicted with the CHECK constraint
"CK_tblStudentResult_TotalMarks".
The conflict occurred in database
"Test",
table
"dbo.tblStudentResult", column 'TotalMarks'.
और एरर को पढने पर साफ़ पता
चलता ही की माजरा क्या है.
Check Constraint को डिलीट
करना हो तो
Alter table
tblStudentResult
Drop Constraint
CK_tblStudentResult_TotalMarks
अगर आप Table बनाते वख्त ही
Check Constraint एड करना चाहते हो तो
Create table
tblStudentResult
(
Id int primary key identity(1,1),
Name nvarchar(100),
TotalMarks
int CONSTRAINT
CK_tblStudentResult_TotalMarks
CHECK(TotalMarks >=0 AND TotalMarks <
51)
)
अथवा
Constraint का नाम दिए बिना
भी इस तरह से ऐड कर सकते हो.
Create table
tblStudentResult
(
Id int primary key identity(1,1),
Name nvarchar(100),
TotalMarks
int CHECK(TotalMarks >=0 AND TotalMarks <
51)
)
इनमे SQL ऑटोमेटिक constraint का नाम ऐड करेगा.
No comments:
Post a Comment