表字段的處理 Sql Server

2021-09-02 05:31:17 字數 2319 閱讀 5982

目錄

表的建立

建立約束

檢視約束

刪除約束

插入資料

增加字段

刪除字段

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