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了本方法可用於探索絕大多數你不知道的資料庫操作代碼的。
