建立SQL約束的方法

2021-08-14 23:51:04 字數 3929 閱讀 4820

**:

create

table student --

建**式

:create table 

自定義的表名 (

--欄位名一般為有一定意義的英文

studentname nvarchar

(15),

-- 格式:欄位名型別

()括號裡面的是允許輸入的長度

studentage int

,--int

型的後面不需要接長度

student*** nvarchar

(2)--

最後乙個字段後面不要逗號 )

--在建立表時就可以對欄位加上約束:

create

table student (

studentno int

primary

keyidentity

(1,1),

--加主鍵約束

,還有標識列屬性(兩者構成實體完整性)

studentname nvarchar

(15)

notnull,

--加非空約束,不加

"not null" 

預設為:可以為空

studentschool text

(20)

foreign

keyreferences schooltable(schoolname),

--加外來鍵約束,格式

:foreign key references 

關聯的表名

(欄位名)

studentage int

default

((0)),

--加預設值約束

student*** nvarchar

(2)check

(student***=n'男'

or student***=n'女'

)--加檢查約束,格式

:check (

條件表示式)

) --如果在表建立好了以後再加約束,則格式分別為:

-- 主鍵:

alter

table表名

addconstraint pk_

欄位名--"pk"

為主鍵的縮寫,欄位名為要在其上建立主鍵的欄位名

,'pk_

欄位名'

就為約束名

primary

key(

欄位名)

--欄位名同上 --

唯一約束:

alter

table表名

addconstraint uq_

欄位名

unique

(欄位名)

--外來鍵約束:

alter

table表名

addconstraint fk_

欄位名--"fk"

為外來鍵的縮寫

foreign

key(

欄位名)

references

關聯的表名

(關聯的欄位名)--

注意'關聯的表名'和

'關聯的欄位名'

alter

table

表a add

constraint fk_b foreign

key(ticket_no)

references

表b(ticket_no)

alter

table

表a add

constraint fk_c foreign

key(person_no)

references

表c(person_no)

alter

table

成績表add

constraint fk_studentno foreign

key(studentno)

references student (studentno) on

update

cascade

ondelete

cascade

級聯更新,級聯刪除,這樣在刪除主表

student

時,成績表中該學生的所有成績都會刪除。 --

檢查約束:

alter

table表名

addconstraint ck_

欄位名

check

(條件表示式)--

條件表示式中的條件用關係運算子連線 --

預設值約束:

alter

table表名

addconstraint df_

欄位名

default

'預設值

'for

欄位名--

其中的'

預設值'

為你想要預設的值,注意

'for' --

刪除建立的約束:

alter

table表名

drop

constraint

約束名--

約束名為你前面建立的如:

pk_欄位這樣的約束名 --

注意:如果約束是在建立表的時候建立的,則不能用命令刪除 --

只能在'

企業管理器

'裡面刪除

-- 獲取sqlserver

中表結構

select

syscolumns.

name

,systypes.

name

,syscolumns.isnullable,

syscolumns.length

from

syscolumns,systypes

where

syscolumns.xusertype = systypes.xusertype

andsyscolumns.id =

object_id

('student'

)-- 

單獨查詢表遞增字段

select

[name] from syscolumns where

id =

object_id

(n'student'

)and

columnproperty

(id,

name

,'isidentity'

)=1

-- 獲取錶主外來鍵約束

exec

sp_helpconstraint

'sturesults'

-- 查詢表主鍵外來鍵資訊

select

sysobjects.id objectid,

object_name

(sysobjects.parent_obj) tablename,

sysobjects.

name constraintname, sysobjects.xtype as constrainttype,

syscolumns.

name

as columnname

from

sysobjects inner

join sysconstraints on

sysobjects.xtype in(

'c',

'f',

'pk'

,'uq'

,'d'

)and

sysobjects.id = sysconstraints.constid

left

outer

join syscolumns on sysconstraints.id = syscolumns.id

where

object_name

(sysobjects.parent_obj)=

'sturesults'

刪除SQL約束的方法

在sql資料庫中,如果需要刪除表約束,應該如何操作呢?下面就將為您介紹刪除sql表約束的方法,供您參考,希望對您有所幫助。1 禁止所有表約束的sql select alter table name nocheck constraint all from sysobjects where type u...

建立與刪除SQL約束或字段約束

建立與刪除sql約束或字段約束 sql約束控制 1 禁止所有表約束的sql select alter table name nocheck constraint all fromwhere type u 2 刪除所有表資料的sql select truncate table name from sy...

使用SQL建立庫 表 約束

create database studb onprimary 預設就屬於primary檔案組,可省略 資料檔案的具體描述 name studb data 主資料檔案的邏輯名稱 filename d studb data.mdf 主資料檔案的物理名稱 size 5mb,主資料檔案的初始大小 maxs...