2015.7.31
使用ALTER TABLE 语句修改数据表
alter(改变) table语句可以更改数据表中的列、添加或删除约束,或者启用或禁用触发器,从而修改数据表的结构。
有关alter table语句的语法结构如下:
alter table[database_name.[schema_name.|schema_name.]table_name]
{
alter column(列) column_name
{
[type_schema_name.]type_name
[null|not null]
|[add|drop]
}
{rowguidcol|persisted}
}
语句中相关的参数含义如下:
database_name:要修改数据表所在数据库的名称
table_name:要司改数据表的名称
column_name:要修改、添加或删除列的名称
type_name:更改数据表结构之后,列的新数据类型或添加列的数据类型
null | not null:表示指定列是否允许为空值。如果列不允许空值,则只有在指定默认值或表为空的情况下,才能用alter table语句添加该列
在现有数据表中添加新的字段
向t_stud数据表中添加一个jtdz字段
alter table t_stud
add jtdz char(50)
删除现有数据表中的字段
删除t_stud数据表中的jtdz字段通过alter table drop column来完成
alter table t_stud
drop(减少) column jtdz
修改字段属性
修改t_stud数据表中jtdz字段的属性通过alter table alter column来完成
alter table t_stud
alter column jtdz varchar(50)//名字之后紧接着的是要修改的属性
设置数据表主键
设置主键用来方便用户对数据表的操作和管理
alter table t_stud with nocheck
add constraint pk_num_id
primary key clustered(id)
执行代码以后,t_stud 数据表中的id字段将被设置为主键
禁用与启用约束
下面是如何实现禁用与启用check约束的相关操作
alter table t_book_sales
--禁用约束
nocheck constraint bz
--插入数据
insert into t_book_sales values(1,'jsp编程',3,30,'缺货')
--启用约束,并且重新插入数据
alter table t_book_sales check constraint bz
insert into t_book_sales values(2,'jsp实例编程',3,36,'缺货')
使用DROP TABLE语句删除数据表
删除数据表是使用drop table语句实现的,下面是结构:
drop table [database_name.[scheam_name].|schema_name.]
table_name [,..n][;]
//其中,database_name表示要删除数据表所在的数据库的名称
//schema_name表示数据表所属构架的名称
//table_name 表示要删除的数据表的名称
在同一个drop table语句中删除引用表以及包含主键的数据表时,需要首先列出引用表,并且在删除数据表时,用户必须具有control权限或者具备db_ddladmin固有数据库角色的成员身份
删除数据表
use db_info go drop table dbo.t_table1 go
其中,use后面的为数据库名称,而drop table 后面为要操作的表的名称
删除临时表
首先在删除临时表之前要进行创建临时表
临时表:临时表是临时存在的数据表,不能永久的存在。临时表与普通表类似,但是临时表具有不适用时会被自动删除的特性
临时表分为本地临时表和全局临时表两种类型
1.本地临时表:以单个符号(#)为前缀,并且仅对当前的用户连接是可见的,当用户从SQL Server实例中断开时将被删除2.全局临时表:以两个符号(##)为前缀,创建后对任何用户都是可见的,当所有引用该临时表的用户从SQL Server实例中断开时将会被删除
创建方法
create table #t_book_sales
(
id int not null,
mc char(20),
xssl int default 0,
dj float default 0,
bz varchar(50),
constraint bz check(bz='有货' or bz='无货'),
)
现在可以开始删除临时表了,在SQL Server 2008中,临时表储存在tempdb数据库中
删除上面创建的#t_book_sales临时表
首先向该临时表中插入数据记录测试该临时表是否存在,然后再使用drop table语句删除该临时表,最后再次通过插入数据记录的方式测试该临时表是否存在
insert into #t_book_sales values(3,'jsp编程',6,30,'有货')
go
select * from #t_book_sales
go
if object_id(n'tempdb..#t_book_sales',n'u') is not null
drop table #t_book_sales
go
select * from #t_book_sales
go