CREATE TABLE 测试_非空性是否可以插入
(
马甲 INT NOT NULL ,
路人 INT NULL ,
打酱油 INT NOT NULL
CONSTRAINT DEFAULT_测试_打酱油 DEFAULT 0 ,
)
一:这条可以通过
ALTER TABLE 测试_非空性是否可以插入
ADD CONSTRAINT CHECK_测试_非空性是否为空 CHECK( 路人>10 OR 路人<100)
二:以下语句不可通过:
------------------------------------------------------------------------------------------------
ALTER TABLE 测试_非空性是否可以插入
ADD CONSTRAINT CHECK_测试_非空性是否为空_01 CHECK( 路人>=10 AND 路人<=100)
/*
-----------------
报错:ALTER TABLE 语句与 CHECK 约束"CHECK_测试_非空性是否为空_01"冲突,表"dbo.测试_非空性是否可以插入", column '路人'/*
-------------------------------------------------------------------------------------------------
ALTER TABLE 测试_非空性是否可以插入
ADD CONSTRAINT CHECK_测试_非空性是否为空_02 CHECK( 马甲>=10 AND 马甲<=100)
报错:
报错:ALTER TABLE 语句与 CHECK 约束"CHECK_测试_非空性是否为空_02"冲突,表"dbo.测试_非空性是否可以插入", column '马甲'/*---------------------------------------------------------
问题:
ALTER TABLE 与CHECK 为啥会冲突?
插一条语句,是先检查约束,CHECK 触发器么? 列属性为非空 ,但是设置了默认值,在插入时候忽略该值可以通过
( INSERT INTO 测试_非空性是否可以插入(马甲,路人) --VALUES(4,5) )?坐等解释帝
(
马甲 INT NOT NULL ,
路人 INT NULL ,
打酱油 INT NOT NULL
CONSTRAINT DEFAULT_测试_打酱油 DEFAULT 0 ,
)
一:这条可以通过
ALTER TABLE 测试_非空性是否可以插入
ADD CONSTRAINT CHECK_测试_非空性是否为空 CHECK( 路人>10 OR 路人<100)
二:以下语句不可通过:
------------------------------------------------------------------------------------------------
ALTER TABLE 测试_非空性是否可以插入
ADD CONSTRAINT CHECK_测试_非空性是否为空_01 CHECK( 路人>=10 AND 路人<=100)
/*
-----------------
报错:ALTER TABLE 语句与 CHECK 约束"CHECK_测试_非空性是否为空_01"冲突,表"dbo.测试_非空性是否可以插入", column '路人'/*
-------------------------------------------------------------------------------------------------
ALTER TABLE 测试_非空性是否可以插入
ADD CONSTRAINT CHECK_测试_非空性是否为空_02 CHECK( 马甲>=10 AND 马甲<=100)
报错:
报错:ALTER TABLE 语句与 CHECK 约束"CHECK_测试_非空性是否为空_02"冲突,表"dbo.测试_非空性是否可以插入", column '马甲'/*---------------------------------------------------------
问题:
ALTER TABLE 与CHECK 为啥会冲突?
插一条语句,是先检查约束,CHECK 触发器么? 列属性为非空 ,但是设置了默认值,在插入时候忽略该值可以通过
( INSERT INTO 测试_非空性是否可以插入(马甲,路人) --VALUES(4,5) )?坐等解释帝
create table t(
路人 int
)
;
go
alter table t add constraint ck_c check(路人>10 or 路人<100)alter table t add constraint ck_c2 check(路人%2=1)alter table t add constraint ck_c3 check(路人>=10 or 路人<=100)exec sp_help t;/*
constraint_type constraint_keys
----------------------- -----------------------------------
CHECK on column 路人 ([路人]>(10) OR [路人]<(100))
CHECK on column 路人 ([路人]%(2)=(1))
CHECK on column 路人 ([路人]>=(10) OR [路人]<=(100))*/
可以创建多个。刚试了。