T-SQL Alter 语句
原创 Lyle_Tu Linux分布式主任 2023-06-20 08:21 发表于福建 收录于合集 #sql5个 #linux13个 #数据库7个 #服务器15个
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 xscj
modify file
(name='xscj_data',
maxsize=unlimited
)
go
alter database xscj
modify file
(name='xscj_data',
filegrowth=5MB
)
go
说明:
Alter databaseAlter database语句一次只能修改数据文件的一个属性,若修改主数据文件的两个属性,需执行两次alter database命令
先为数据库xscj增加数据文件xscjbak,初始大小为10MB,最大为50MB,增长方式为5%。然后删除xscjbak.
alter database xscj
add file
(name='xscjbak',
filename='e:\sql\xscjbak.ndf',
size=10MB,
maxsize=50MB,
filegrowth=5%
)
Go
alter database xscj
remove file xscjbak
go
增加数据文件
【例2-3】为数据库“jxgl”增加数据文件jxglbak,初始大小为10MB,最大为50MB,增长方式为5%。
alter database jxgl
add file
(name='jxglbak',
filename='e:\sql\jxglbak.ndf',
size=10MB,
maxsize=50MB,
filegrowth=5%
)
go
删除数据文件
例2-4】从数据库“jxgl”中,删除数据文件jxglbak。
alter database jxgl
remove file jxglbak
go
从数据库中删除文件组
alter database xscj
remove file xscj_data2
go
alter database xscj
remove file xscj_data3
go
alter database xscj
remove filegroup Fgroup
Go
说明:使用T_SQL命令删除文件组时必须为空,使用菜单可一同删除。
为数据库添加一个日志文件
alter database xscj
add log file
(name=xscj_log2,
filename='e:\sql\xscj_log2.ldf',
size=5MB,
maxsize=10MB,
filegrowth=1MB
)
go
从数据库xscj中删除一个xscj_Log2日志文件
alter database xscj
remove file xscj_log2
go
将数据库xscj中更名为just_test,
alter database xscj
modify name=just_test
go
修改表常用语句
修改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 TestBase
go
--创建表
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 ProductInfos
go
--创建表之后,进行修改
--不删除原来的表的基础上,进行修改
--添加一列 ProRemark
alter table ProductInfos add ProRemark nvarchar(max) null
--删除一列 ProRemark
alter 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 xscj
go
alter table student
add 少数民族否 bit
go
alter table student
drop column 少数民族否
go
在xscj数据库下修改student表,将姓名长度由原来的8修改为10;将出生日期由原来的smalldatetime修改为date;
use xscj
go
alter table student
alter column 姓名 varchar(10)
go
alter table student
alter column 出生日期 date
go
收录于合集 #数据库 7个 上一篇SQL Server 数据操作下一篇数据库增删改语句 阅读 38