--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...