T-SQL Alter 语句
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
修改数据库常用语句
语法格式:
ALTER DATABASE database_name{ADD FILE<filespec>[ ,...n] [TO FILEGROUP{filegroup_name}]| ADD LOG FILE<filespec>[ , ...n]| REMOVE FILE <filespec>| ADD FILEGROUP filegroup_name| MODIFY FILEGROUP filegroup_name {filegroup_property |NAME = new_filegroup_name }
参数介绍:
-
ADD FILE :向数据库文件添加新的数据文件。
-
ADD LOG FILE:向数据库添加事物日志文件。
-
REMOVE FILE:从SQL Server 实例中删除逻辑文件说明并删除物理文件。
-
MODIFY:修改某一个文件组的属性。
案例:
修改数据库xscj现在数据文件的属性,将主数据文件的最大大小修改为不限制,增长方式修改为按每次5MB增长。alter database xscjmodify file(name='xscj_data',maxsize=unlimited)goalter database xscjmodify file(name='xscj_data',filegrowth=5MB)go说明:Alter databaseAlter database语句一次只能修改数据文件的一个属性,若修改主数据文件的两个属性,需执行两次alter database命令
先为数据库xscj增加数据文件xscjbak,初始大小为10MB,最大为50MB,增长方式为5%。然后删除xscjbak.alter database xscjadd file(name='xscjbak',filename='e:\sql\xscjbak.ndf',size=10MB,maxsize=50MB,filegrowth=5%)Goalter database xscjremove file xscjbakgo增加数据文件【例2-3】为数据库“jxgl”增加数据文件jxglbak,初始大小为10MB,最大为50MB,增长方式为5%。alter database jxgladd file(name='jxglbak',filename='e:\sql\jxglbak.ndf',size=10MB,maxsize=50MB,filegrowth=5%)go
删除数据文件例2-4】从数据库“jxgl”中,删除数据文件jxglbak。alter database jxglremove file jxglbakgo从数据库中删除文件组alter database xscjremove file xscj_data2goalter database xscjremove file xscj_data3goalter database xscjremove filegroup FgroupGo说明:使用T_SQL命令删除文件组时必须为空,使用菜单可一同删除。
为数据库添加一个日志文件alter database xscjadd log file(name=xscj_log2,filename='e:\sql\xscj_log2.ldf',size=5MB,maxsize=10MB,filegrowth=1MB)go从数据库xscj中删除一个xscj_Log2日志文件alter database xscjremove file xscj_log2go将数据库xscj中更名为just_test,alter database xscjmodify name=just_testgo
修改表常用语句
修改Sql Server表结构时,常用到Alter语句,把一些常用的alter语句列举如下。
1:向表中添加字段
Alter table [表名] add [列名] 类型
2: 删除字段
Alter table [表名] drop column [列名]
3: 修改表中字段类型 (可以修改列的类型,是否为空)
Alter table [表名] alter column [列名] 类型
4:添加主键
Alter table [表名] add constraint [ 约束名] primary key( [列名])
5:添加唯一约束
Alter table [表名] add constraint [ 约束名] unique([列名])
6:添加表中某列的默认值
Alter table [表名] add constraint [约束名] default(默认值) for [列名]
7:添加约束
Alter table [表名] add constraint [约束名] check (内容)
8:添加外键约束
Alter table [表名] add constraint [约束名] foreign key(列名) referencese 另一表名(列名)
9:删除约束
Alter table [表名] drop constraint [约束名]
10:重命名表
exec sp_rename '[原表名]','[新表名]'
11:重命名列名
exec sp_rename '[表名].[列名]','[表名].[新列名]'创建注释(N'user', N'dbo', N'TABLE' 为固定的写法)
12:为表添加描述信息
EXECUTE sp_addextendedproperty N'MS_Description', '人员信息表', N'user', N'dbo', N'TABLE', N'表名', NULL, NULL
13:为字段Username添加描述信息
EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N'TABLE', N'表名', N'column', N'Username'
14:为字段Sex添加描述信息
EXECUTE sp_addextendedproperty N'MS_Description', '性别', N'user', N'dbo', N'TABLE', N'表名', N'column', N'Sex'
15:更新表中列UserName的描述属性:
EXEC sp_updateextendedproperty 'MS_Description','新的姓名','user',dbo,'TABLE','表名','column','UserName'
16:删除表中列UserName的描述属性:
EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'TABLE','表名','column','Username'
案例:
use TestBasego--创建表create table ProductInfos(Id int identity(1001,1) primary key not null, --标识种子,增量ProNo varchar(50) not null,ProName nvarchar(20) not null,TypeId int not null,Price decimal(18,2) default (0.00) not null,ProCount int default (0) null,)go--删除表drop table ProductInfosgo--创建表之后,进行修改--不删除原来的表的基础上,进行修改--添加一列 ProRemarkalter table ProductInfos add ProRemark nvarchar(max) null--删除一列 ProRemarkalter table ProductInfos drop column ProRemark--修改一列alter table ProductInfos alter column ProNo nvarchar(50) null--修改列名 一般慎用--exec sp_rename 'ProductInfos.ProCount','Count','column'
在xscj数据库下修改student表,增加少数民族否一列,为bit类型。然后在此表中删除此列.use xscjgoalter table studentadd 少数民族否 bitgoalter table studentdrop column 少数民族否go在xscj数据库下修改student表,将姓名长度由原来的8修改为10;将出生日期由原来的smalldatetime修改为date;use xscjgoalter table studentalter column 姓名 varchar(10)goalter table studentalter column 出生日期 datego
收录于合集 #数据库
7个上一篇SQL Server 数据操作下一篇数据库增删改语句
Linux分布式主任