SQL實作表名更改,列名更改,限制更改 (轉)
-
修改表名
格式:sp_rename tablename,newtablenamesp_rename tablename,newtablename
-
修改字段名
格式:sp_rename 'tablename.colname',newcolname,'column'sp_rename 'tablename.colname',newcolname,'column'
-
添加字段
格式:alter table table_name add new_column data_type [interality_codition]示例1 ALTER TABLE student Add nationality varchar(20) --示例2 添加int類型的列,預設值為 0 alter table student add studentName int default 0 --示例3 添加int類型的列,預設值為0,主鍵 alter table student add studentId int primary key default 0 --示例4 判斷student中是否存在name字段且删除字段 if exists(select * from syscolumns where id=object_id('student') and name='name') begin alter table student DROP COLUMN name end
-
更改字段
格式:alter table table_name alter column column_nameALTER TABLE student ALTER COLUMN name VARCHAR(200)
-
删除字段
格式:alter table table_name drop column column_nameALTER TABLE student DROP COLUMN nationality;
-
檢視字段限制
格式: select * from information_schema.constraint_column_usage where TABLE_NAME = table_nameSELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME FROM information_schema.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = 'student'
-
檢視字段預設限制表達式 (即預設值等)
格式:select * from information_schema.columns where TABLE_NAME = table_nameSELECT TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT FROM information_schema.COLUMNS WHERE TABLE_NAME='student'
-
檢視字段預設限制名
格式:select name from sysobjects where object_id(table_name)=parent_obj and xtype=’D’select name from sysobjects where object_id('表?名?')=parent_obj and xtype='D'
-
删除字段限制
格式:alter table tablename drop constraint constraintnameALTER TABLE student DROP CONSTRAINT PK__student__2F36BC5B772B9A0B
-
添加字段限制
格式:alter table tablename add constraint constraintname primary key (column_name)--示例1 ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) --示例2 添加主鍵限制(Primary Key) -- 存在主鍵限制PK_stuNO,則删除 IF EXISTS(SELECT * FROM sysobjects WHERE name='PK_stuNo' and xtype='PK') Alter TABLE stuInfo Drop Constraint PK_stuNo Go -- 重新添加主鍵限制PK_stuNO ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) Go --示例3 添加 唯一UQ限制(Unique Constraint) -- 存在唯一限制UQ_stuNO,則删除 IF EXISTS(SELECT * FROM sysobjects WHERE name='UQ_stuID' and xtype='UQ') Alter TABLE stuInfo Drop Constraint UQ_stuID Go -- 重新添加唯一限制UQ_stuID ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID) --示例4 添加預設DF限制(Default Constraint) -- 存在預設限制UQ_stuNO,則删除 IF EXISTS(SELECT * FROM sysobjects WHERE name='DF_stuAddress' and xtype='D') Alter TABLE stuInfo Drop Constraint DF_stuAddress Go -- 重新添加預設限制DF_stuAddress ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT ('位址不詳') FOR stuAddress --示例5 檢查CK限制(Check Constraint) -- 存在檢查限制UQ_stuNO,則删除 IF EXISTS(SELECT * FROM sysobjects WHERE name='CK_stuAge' and xtype='C') Alter TABLE stuInfo Drop Cons
- 添加外鍵
--删除外鍵
alter table AdItem drop constraint AdOrder_AdItem_FK1
--增加外鍵
alter table AdItem
add constraint AdOrder_AdItem_FK1 foreign key (AI_nOrderNo) references AdOrder(AO_nOrderNo)