sql表约束语句
一般来说,
约束语句的格式
就是
在字段后加
CONSTRAINT
约束名
约束
下面是一个例子,一个是非空约束,一个是
CHECK约束。
1>
CREATE
TABLE
test_create_tab4
(
2>
id
INT
PRIMARY
KEY,
3>
val
VARCHAR(10)
4>
CONSTRAINT
test_tab4_val_nn
NOT
NULL,
5>
val2
INT,
6>
CONSTRAINT
test_tab4_val2_100
CHECK(val2
>=
0
AND
val2
<=
100)
7>
);
8>
go
1>
INSERT
INTO
test_create_tab4(id,
val2)
VALUES(1,
100);
2>
GO
消息
515,级别
16,状态
2,服务器
HOME-BED592453C\SQLEXPRESS,第
1
行
不能将值
NULL
插入列
'val',表
'Stock.dbo.test_create_tab4';列不允许有空值。INS
ERT
失败。
语句已终止。
1>
INSERT
INTO
test_create_tab4(id,
val,
val2)
VALUES(1,
'ERR',
1024);
2>
GO
消息
547,级别
16,状态
1,服务器
HOME-BED592453C\SQLEXPRESS,第
1
行
INSERT
语句与
CHECK
约束"test_tab4_val2_100"冲突。该冲突发生于数据库"Stock",表"
dbo.test_create_tab4",
column
'val2'。
语句已终止。
② SQL 中的约束
下面是MSSQL添加约束SQL语句,如果A=1,B就必须大于0,其他情况下B没限制
创建表时同时添加题主要求的约束
createtablet1(idintidentityprimarykey,Aint,Bint,
constraintChk_BCheck(casewhenA<>1then1else
casewhenB>0then1else0endend=1));
有表后才添加约束
altertablet1addconstraintChk_BCheck
Check(casewhenA<>1then1else
casewhenB>0then1else0endend=1);
③ SQL之约束语句
//约束与表没有什么关系TEST
alter
table
<表1>
add
const
pk_uid
primary
key(uid),
--主键约束
alter
table
...
add
const
df_address
default('地址不详')for
address,
--默认约束
alter
talbe
...
add
const
ck_sex
check(sex
in('男,女')),
alter
talbe
...
add
const
ck_sex
check(sex
='男'
or
sex
='女'),
alter
table
...
add
const
ck_age
check(age
between
12
and
30),
--检查约束
alter
table
...
add
const
uq_number
unique(number)
--唯一约束
alter
table
...
add
const
ck_num
check(num
like
'[1][2]
[4][_]
[0-9][0-9]
[0-9][a-z]'),
--检查约束
alter
table
...
add
const
ck_lenght
check(len(lenght)>6),
--检查约束长度大于6
alter
table
...
add
const
ck_number
ckeck(number>1),
--检查这个数大于
1
----------------------------------------------------------------------
④ 数据库中有没有修改表约束的SQL语句
如果需要修改SQL主键约束,该SQL语句应该怎么写呢?下面就将教您SQL主键约束的修改语句写法,如果您遇到过类似的问题,不妨一看。
--修改SQL主键约束用SQL
--获取SQL主键约束名字
declare @csname varchar(100)
set @csname=''
select @csname=name
FROM sysobjects
WHERE xtype='PK' AND parent_obj=object_id('表名')
--删除约束
exec('alter table 表名 drop constraint ' + @csname)
--禁用约束(不校验)
exec('alter table 表名 nocheck constraint ' + @csname)
--启用约束(校验)
exec('alter table 表名 check constraint ' + @csname)
--添加约束
alter table 表名 add constraint 主键约束名 primary key (列名)
例: if not exists ( SELECT *
from syscolumns
where id = object_id('accPF_RefFAcctID')
and name = 'id')
ALTER TABLE accPF_RefFAcctID
ADD id INT IDENTITY(1,1) CONSTRAINT PK_accPF_RefFAcctID PRIMARY KEY (id)
⑤ 怎么用sql命令语句写check约束
用sql命令语句写CHECK约束的格式为CHECK (约束条件)。
如:
CREATE TABLE 成绩信息(
成绩编号 int NOT NULL PRIMARY KEY,
学生编号 nchar(50) NOT NULL,
考试编号 nchar(10) NOT NULL,
课程编号nchar(10) NOT NULL,
分数 nchar(10) NOT NULL CHECK (分数in(between '0' and '100'))
在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式。CHECK约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。当除去某个表时,对这个表的CHECK 约束也将同时被去除。

(5)sql表约束语句扩展阅读:
CHECK 约束不接受计算结果为 FALSE 的值。因为空值的计算结果为 UNKNOWN,所以如果赋值表达式中存在这些值,则约束可能会被覆盖而不起作用。如果 CHECK 约束检查的条件对于表中的任何行都不是 FALSE,它将返回 TRUE。
如果刚创建的表没有任何行,则此表的任何 CHECK 约束都视为有效。执行 DELETE 语句时不验证 CHECK 约束。因此,使用特定类型的 CHECK 约束对表执行 DELETE 语句时可能会产生意外结果。
⑥ 谁知道数据库中添加各种约束的SQL语句的写法啊,求示例,请高手帮忙!!!!
语法:
alter
table
表名
add
constraint
约束名
具体约束类型
字段名
例如给表A的字段StuNo添加一个主键约束(简写PK)
alter
table
A
add
constraint
PK_StuNo
primary
key(StuNo)
例如给表A的字段Sex添加一个检查约束(简写CK)
alter
table
A
add
constraint
CK_Sex
check(Sex>18
and
Sex<40)
例如给表B的字段StuNo添加一个外键约束(简写FK)
外键是来自于A表的主键
alter
table
B
add
constraint
FK_StuNo
foreign
key(StuNo)
references
A(StuNo)
基本五个约束的语法就这样、很简单的
注意一点:上面那个约束名首先是约束类型的简写,例如PM_、FK_、CK_等、后面可以自己定义
在这里我为了好区分是那个字段的约束我就写的哪个字段名了,希望你能看懂~
⑦ SQL约束语句
下面全是白话啦,听不听得懂靠你啦,哈哈...
主键约束:
神马是主键?一个表由很多行记录组成的吧,对不对?为了让每一行都能被唯一区分,咱们得找个区分的方法啊。比如,就你吧,学生表里的学号,你这一列,我把你从头到尾读下来,发现你都代表了不同的学生,而且没有重复额。一个学生是学生表里面的一行,学号这一列能区分开里面所有的学生,理所当然就是学生表里面的主键啦。
默认约束:
默认约束就是你为default这个东东设定一个值。 还是学生表,我给性别这一列绑定了一个默认值“男”,那么这一列的default就是“男”了,对不对?我往学生表放记录,性别一列的值,我不写“男”,我写个“default”,其实都是男,对不对?每一列都有一个default,只有绑定了默认约束的列,放default才有效哩,不然“嘣”,会报错的。
检查约束:
搞检查的都是些干什么的,你懂的。又是学生表,检查组的说,咱们如果发现有人的性别是“人妖”,我们是不允许他进入到学生表的,懂不懂?你是检查组的组长,你干的活就是为学生表的性别写一个检查约束,规定性别的值只能是男和女。这就是规矩,这就是权力,这就是检查约束。当往学生表放记录的时候,检查约束就奏效的哩,他会找你放进去的性别要不要得。要不得,“嘣”!一个错啊。
唯一约束:
跟这个主键约束没什么两样的,其实都是规定了不能重复哩,只不过主键能跟外键勾搭上,唯一没这个命啊。它会让那些绑定了唯一约束的列晓得,我与这一列的其他值绝对是不重复的,我是这一列里面独一无二的哩。还是他妈的放记录,约束们就行动了,咦?唯一约束说:我绑定的这一列已经存在你输入的值了,不行,我要报错!
⑧ SQL约束语句怎么写有四种求代码!!!1
事件探查器打开跟踪,然后你就在管理器里建约束,探查器里会看到运行代码,简单修正一下就OK了本方法可用于探索绝大多数你不知道的数据库操作代码的。
