SQL server 約束與規則

2021-07-24 18:38:34 字數 1402 閱讀 8511

--1

-- 建立表的時候

create table tablename(

-- 只是單列的屬性

t1name [int] [not null]

[(constraint pk_st2 )primary key clustered] -- 聚合主鍵

[(constraint fk_sno) foreign key references dbo.student2(sno)] --外來鍵指向的一定要是主鍵

[(check(score>0 and score < 100)] -- check也是約束,可以定義名

[(constraint df_score) default(20)] -- 預設值也是約束

[unique]

-- 多列一起的屬性

constraint pk_sc2 primary key clustered (sno , cno), --復合主鍵

constraint ck_test check ( *** > age ) -- 沒實際意義,只為舉例

)--- 動態建立約束

--新增主鍵約束

alter table stuinfo

add constraint pk_stuno primary key(stuno)

--新增唯一鍵約束

alter table stuinfo

add constraint uq_stuid unique(stuid)

--新增預設約束

alter table stuinfo

add constraint df_stuaddress default('位址不詳') for stuaddress

--新增檢查約束

alter table stuinfo

add constraint ck_stuage check(stuage between 15 and 40)

--新增外來鍵約束

alter table stuinfo

add constraint fk_stuno foreign key(stuno) references stuinfo(stuno)

--2. 規則

-- 2008 以後不能視覺化的建立規則

-- 規則是整合的約束 方便管理 規則也是動態可變的(沒試過)

-- 功能是一樣的

create rule rl_age

as (@age > 18 and @age < 50 ) -- 可以復合 @必須要寫

--繫結規則到指定的列

exec sp_bindrule 'rl_age','dbo.student2.age'

--取消繫結:

exec sp_unbindrule 'dbo.student2.age'

約束與規則簡介

一 約束 約束定義關於列中允許值的規則,是強制完整性的標準機制。使用約束優先於使用觸發器 規則和預設值。查詢優化器也使用約束定義生成高效能的查詢執行計畫。sql server 2005支援五類約束 1.not null指定不接受null值的列。2.check 約束對可以放入列中的值進行限制,以強制執...

sql server 建立表與約束

表是儲存資料的基本資料庫物件,設計資料庫的最主要的工作是設計表結構。在sql server中,表分為永久表和臨時表兩種。資料通常儲存在永久表中,如果使用者不手動刪除,永久表和其中的資料將永久存在。臨時表儲存在 tempdb資料庫中,當不再使用時系統會自動刪除臨時表 臨時表分為本地臨時表和全域性臨時表...

規則和約束

rule and constraint 規則和約束 建立規則 create rule rule name as f or m create table classmates st no varchar 20 st name varchar 10 st varchar 2 st bir date in...