Using a Multicolumn CHECK Constraint : Check « Constraints « SQL Server / T-SQL Tutorial






4> CREATE TABLE ClassGrades(
5>     ClassID int,
6>     StudentID int,
7>     GradeLetter varchar(2),
8>     Constraint PK_ClassGrades
9>         PRIMARY KEY(ClassID, StudentID),
10>     Constraint CK_GradeRange_ClassID
11>         CHECK (LEFT(UPPER(GradeLetter),1)
12>         LIKE '[A-F]' AND ClassID < 1000)
13> )
14> GO
1>
2> INSERT ClassGrades VALUES(1, 1, 'C+')
3> INSERT ClassGrades VALUES(1, 2, 'A+')
4> INSERT ClassGrades VALUES(1, 3, 'V-')
5> INSERT ClassGrades VALUES(1001, 1, 'A')
6> INSERT ClassGrades VALUES(999, 2, 'A')
7> GO

(1 rows affected)

(1 rows affected)
Msg 547, Level 16, State 1, Server J\SQLEXPRESS, Line 4
The INSERT statement conflicted with the CHECK constraint "CK_GradeRange_ClassID". The conflict occurred in database "master", table "dbo.ClassGrades".
The statement has been terminated.
Msg 547, Level 16, State 1, Server J\SQLEXPRESS, Line 5
The INSERT statement conflicted with the CHECK constraint "CK_GradeRange_ClassID". The conflict occurred in database "master", table "dbo.ClassGrades".
The statement has been terminated.

(1 rows affected)
1>
2> drop table ClassGrades;
3> GO








7.5.Check
7.5.1.Using CHECK Constraints
7.5.2.Adding a CHECK Constraint to an Existing Table
7.5.3.Constraints with name
7.5.4.CHECK Clause
7.5.5.Check Constraint
7.5.6.CHECK (DATEPART(DAY, GETDATE()) < 28)
7.5.7.A check constraint uses an expression to qualify records that are acceptable for any Inserts or Updates
7.5.8.Use or to link two conditions for check constraint
7.5.9.Using a Multicolumn CHECK Constraint
7.5.10.Check for data length
7.5.11.Pattern based constraint
7.5.12.Mark nocheck for a constraint
7.5.13.A table-level check constraint that limits Banker IDs to a specific format