sqlserver 修改表和字段和约束
修改表名
EXEC sp_rename '原表名', '新表名';
修改字段名
EXEC sp_rename '[表名].[字段名]','新字段名' ;
添加字段
alter table 表名 add 列名 字段类型;
如果字段不为空,需要先添加一个默认值
alter table 表名 add 列名 字段类型 not null default 0
修改字段类型
alter table 表名 alter column 字段名 字段类型;
删除字段
alter table 表名 drop column 字段名;
修改字段为允许为空
ALTER TABLE 表名 ALTER COLUMN [字段名] 类型 NULL;
例如,修改table1的username字段为允许为null
ALTER TABLE table1 ALTER COLUMN [username] VARCHAR(50) NULL;
修改字段约束
要想删除字段约束,第一步应查询当前字段所在表的所有约束
语法:
select * from sysobjects where parent_obj in(select id from sysobjects where name='表名')
或者:exec sp_helpconstraint @objname='表名'
如:select * from sysobjects where parent_obj in(select id from sysobjects where name='Evl_EvluationProsPlan')
然后执行删除约束(也可以直接执行删除约束语法,不查询)
语法:
ALTER TABLE 表名 DROP CONSTRAINT 约束名
如:ALTER TABLE Evl_EvluationProsMarkGroup DROP CONSTRAINT FK__Evl_Evlua__Evlua__45472A22
增加约束:
Alter Table 表名
Add Constraint 约束名 约束类型 具体的约束类型
---添加主键约束
Alter Table stuInfo
Add Constraint PK_stuNO primary Key(stuNo[,...n])
---添加唯一约束
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 stuMarks
Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)