我是SQL的初学者, 我有一个带有GroupRole列和Age列的表。
CREATE TABLE [Persons](
[PersonID] [int] IDENTITY(1,1) NOT NULL,
[FullName] [varchar](70) NULL,
[Age] [int] NULL,
[GroupRole ] [varchar](30) NULL
CONSTRAINT [PK_Persons] PRIMARY KEY CLUSTERED
(
[PersonID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
我想限制可以放置在年龄列低30的值范围 并且GroupRole列等于“ Admin”。
我不想在C#代码中执行此操作。
我该怎么办?
答案 0 :(得分:2)
这很简单:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=30 AND GroupRole ='Admin');
答案 1 :(得分:0)
您需要使用Check Constraints。它们是表元数据的一部分,并定义了在数据被修改或插入表中时每次都要检查的条件。如果不满足这些条件,则DML操作将失败并显示错误。
您需要按如下所示修改CREATE TABLE语句:
select *
from INVOICE_HEADING
where INVOICE_DATE >= '06 Dec 2018 00:00:00'
INVOICE_DATE <= '16 Dec 2018 00:00:00'