Gibt es eine Möglichkeit, ich kann eine Einschränkung erstellen, die den Wert von zwei Spalten in SQL server überprüft?

Ich habe diese DDL:

CREATE TABLE [dbo].[AdminTest] ( [AdminTestId] INT IDENTITY (1, 1) NOT NULL, [Title] NVARCHAR (100) NOT NULL, [CreatedBy] INT NOT NULL, [CreatedDate] DATETIME NOT NULL, [ModifiedBy] INT NOT NULL, [ModifiedDate] DATETIME NOT NULL, [TestLevelId] INT NOT NULL, [TestStatusId] INT NOT NULL, [ExamId] INT NOT NULL, [Text] NVARCHAR (MAX) NULL, [Sequence] INT DEFAULT ((1)) NOT NULL, [Release] NVARCHAR (50) DEFAULT ((1)) NOT NULL, [Version] ROWVERSION NOT NULL, [Price] MONEY DEFAULT ((0)) NOT NULL, [ReleaseDate] DATETIME NULL, [Code] VARCHAR (10) DEFAULT (LEFT(newid(), (5))) NOT NULL ); 

Gibt es eine Möglichkeit, dass ich verlangen kann, dass das ReleaseDate einen Wert hat, wenn der Wert der Release Spalte 2 ist?

Ja:

 alter table dbo.AdminTest add constraint CK_AdminTest_VerifyReleaseAndDate CHECK (Release = N'2' AND ReleaseDate IS NOT NULL OR Release <> N'2'); 

Während ALTER:

 ALTER TABLE AdminTest ADD CONSTRAINT DF_Check CHECK (Release=2) ; 

Während der Schöpfung

 CREATE TABLE ADMIN( Release int CONSTRAINT DF_Check CHECK (Release=2) ) 

Sie können auch Check-Constraint inline als Spalten-Constraint definieren, wie dies –

 CREATE TABLE [dbo].[AdminTest] ( [AdminTestId] INT IDENTITY (1, 1) NOT NULL, [Release] NVARCHAR (50) DEFAULT ((1)) NOT NULL, [ReleaseDate] DATETIME NULL CONSTRAINT CK_Release CHECK (Release='2') , [Code] VARCHAR (10) DEFAULT (LEFT(newid(), (5))) NOT NULL );