目錄
表的建立
建立約束
檢視約束
刪除約束
插入資料
增加字段
刪除字段
create table student(
"學號" char(8) not null,
"姓名" char(8) not null,
"性別" char(2) not null,
"出生日期" date default(getdate()),
"班級" char(10) null,
"家庭住址" char(50) null,
"學分" tinyint default('0') null
)
alter table student
add constraint pk_stuno primary key("學號")
alter table student
add constraint pk_stuage check("學分" between 0 and 100)
drop constraint df__student__出生日期__5165187f
注意此處用的是約束名
insert into student
values
('1001',n'黃藥師',n'男','1988-10-01',n'射鵰1','桃花島','90'),
('1002',n'歐陽鋒',n'男','1988-10-01',n'射鵰2','白駝山莊','90'),
('1003',n'黃藥師',n'男','1988-10-01',n'射鵰3','大理國','90'),
('1004',n'黃藥師',n'男','1988-10-01',n'射鵰4','不詳','90'),
('1005',n'王重陽',n'男','1988-10-01',n'射鵰5','昆嵛山','90');
有時候常常會在現有的表上增加字段,預設將新增在最後,並且無法設定新增的位置,接著看下如下幾種情況
alter table student
add "備註1" varchar(200) null
alter table student
add "備註2" varchar(200) null
default n'我不是備註'
alter table student
add "備註3" varchar(200) not null
default n'你就是備註'
備註1和備註2此時還看不出什麼區別,再新增一條
insert into student(學號,姓名,性別,出生日期,班級,家庭住址,學分)
values('1006',n'第六者',n'男','1988-10-01',n'射鵰6',n'未知',90)
可見設定預設值後not null是立刻設定預設值,而null要等到下一次修改才會設定預設值,之前的資料將是null
alter table student
add "備註2" varchar(200) not null
此時執行上面的語句將會報錯。alter table 只允許新增滿足下述條件的列: 列可以包含 null 值;或者列具有指定的 default 定義;或者要新增的列是標識列或時間戳列;或者,如果前幾個條件均未滿足,則表必須為空以允許新增此列。不能將列「備註2」新增到非空表「student」中,因為它不滿足上述條件。
alter table student
drop column 備註1
sql server 刪除表字段和字段的約束
刪除資料庫表中的字段時,使用了 alter table 表名 drop column 列名 伺服器返回的錯誤為 server msg 5074,level 16,state 1,line 1 the object 約束名 is dependent on column 列名.server msg 49...
對Sql Server表字段進行修改
通用式 alter table 表名 add 欄位名 字段屬性 default 預設值 default 是可選引數 增加字段 alter table 表名 add 欄位名 smallint default 0 增加數字字段,整型,預設值為0 alter table 表名 add 欄位名 int de...
SQL SERVER檢視表字段資訊
快速檢視表結構字段 比較全面的 select col.colorder as 序號 case when col.colorder 1then obj.name else end as 表名,as中文表名,isnull ep.value as 注釋 col.name as欄位名 t.name as資料...