T-SQL入門攻略之13-修改数据表
2010-10-22 14:29
239 查看
修改表名与字段名
—sp_rename
--1
修改表名
SQL Server
不直接提供修改表名的
T-SQL
语句,但是可以通过存储过程实现
语法格式:
sp_rename
tablename,
newtablename
use
mydatabase
go
sp_rename
tablename,
newtablename
--2
修改字段名也可以通过存储过程实现
语法格式:
sp_rename
'tablename.colname'
,
newcolname,
'column'
go
use
mydatabase
go
sp_rename
'tablename.colname'
,
newcolname,
'column'
添加字段
--
添加字段是给指定的表增加一个新的字段
语法格式:
alter
table
table_name
add
new_column data_type [interality_codition]
--
如
USE
MyDatabase;
GO
ALTER
TABLE
student
Add
nationality varchar
(
20);
删除字段
--
删除字段就是给某个表删除一些字段
语法格式:
alter
table
table_name
drop
column
column_name
--
如
USE
MyDatabase;
GO
ALTER
TABLE
student
DROP
COLUMN
nationality;
注:当一个字段被删除后对应的值也将被删除,在
SQL Server
中以下几种类型的字段是不能删除的
:
1:
定义了约束的字段
.
主要有:主键约束
,
外建约束
,check
约束
,unique
约束
2
:指定了缺省值的字段
3
:定义了索引的字段
4
:已经绑定到规则的字段
也就是说,要删除有上述特征的字段,必须删除相应的约束(包括缺省值)和索引,以及结束绑定等。但是具有
NOT NULL
约束字段的却是可以删除的。
删除字段
DROp constraint
--1
查看字段约束
,
字段的约束信息保存在信息架构视图
--information_schema.constraint_column_usage
中
USE
MyDatabase;
--
跟当前数据库有关
go
SELECT
TABLE_NAME
表名
,
COLUMN_NAME
列名
,
CONSTRAINT_NAME
约束名
FROM
information_schema.CONSTRAINT_COLUMN_USAGE
WHERE
TABLE_NAME =
'student'
--2
查看指定表中缺省约束表达式
,
可以从
information_schema.columns
中查询
USE
MyDatabase;
--
跟当前数据库有关
go
SELECT
TABLE_NAME
表名
,
COLUMN_NAME
列名
,
COLUMN_DEFAULT
缺省表达式
FROM
information_schema.columns
WHERE
TABLE_NAME=
'student'
;
--3
查看缺省约束名
select
name
缺省约束名
from
sysobjects
where
object_id
(
'
表名
'
)=
parent_obj and
xtype=
'D'
--4
删除字段约束
语法格式:
drop
table
tablename
drop
constraint
constraintname
--
如:
ALTER
TABLE
student DROP
CONSTRAINT
PK__student__2F36BC5B772B9A0B
ALTER
TABLE
student DROP
CONSTRAINT
CK__student__s_sex__7913E27D
ALTER
TABLE
student DROP
CONSTRAINT
CK__student__s_birth__7A0806B6
ALTER
TABLE
student DROP
CONSTRAINT
CK__student__s_avgra__7BF04F28
ALTER
TABLE
student DROP
CONSTRAINT
DF__student__s_speci__039170F0
ALTER
TABLE
student DROP
CONSTRAINT
DF__student__s_dept__0579B962
修改字段数据类型
语法格式:
alter
table
tablename
alter
column
column_name newdatatype
如:修改长度
ALTER
TABLE
student
ALTER
COLUMN
s_name varchar
(
20);
--
注:对于字段长度的改变可以变大也可以变小但是变小的时候
,
其长度不能小于当前字段值
--
的最大长度。另外主键字段不能修改其数据类型
修改字段数据类型
--
要先删除约束
ALTER
TABLE
student
ALTER
COLUMN
s_no int
--
如果有约束应先删除
--
查看约束
USE
MyDatabase;
--
跟当前数据库有关
go
SELECT
TABLE_NAME
表名
,
COLUMN_NAME
列名
,
CONSTRAINT_NAME
约束名
FROM
information_schema.CONSTRAINT_COLUMN_USAGE
WHERE
TABLE_NAME =
'student'
--
删除约束
ALTER
TABLE
student
DROP
CONSTRAINT
PK__student__2F36BC5B18178C8A
--
注:如果修改数据类型的种类
(
如字符型转换为整型
),
应当能够保证当前的字段值能成功的
--
转换到改变后的数据类型
—sp_rename
--1
修改表名
SQL Server
不直接提供修改表名的
T-SQL
语句,但是可以通过存储过程实现
语法格式:
sp_rename
tablename,
newtablename
use
mydatabase
go
sp_rename
tablename,
newtablename
--2
修改字段名也可以通过存储过程实现
语法格式:
sp_rename
'tablename.colname'
,
newcolname,
'column'
go
use
mydatabase
go
sp_rename
'tablename.colname'
,
newcolname,
'column'
添加字段
--
添加字段是给指定的表增加一个新的字段
语法格式:
alter
table
table_name
add
new_column data_type [interality_codition]
--
如
USE
MyDatabase;
GO
ALTER
TABLE
student
Add
nationality varchar
(
20);
删除字段
--
删除字段就是给某个表删除一些字段
语法格式:
alter
table
table_name
drop
column
column_name
--
如
USE
MyDatabase;
GO
ALTER
TABLE
student
DROP
COLUMN
nationality;
注:当一个字段被删除后对应的值也将被删除,在
SQL Server
中以下几种类型的字段是不能删除的
:
1:
定义了约束的字段
.
主要有:主键约束
,
外建约束
,check
约束
,unique
约束
2
:指定了缺省值的字段
3
:定义了索引的字段
4
:已经绑定到规则的字段
也就是说,要删除有上述特征的字段,必须删除相应的约束(包括缺省值)和索引,以及结束绑定等。但是具有
NOT NULL
约束字段的却是可以删除的。
删除字段
DROp constraint
--1
查看字段约束
,
字段的约束信息保存在信息架构视图
--information_schema.constraint_column_usage
中
USE
MyDatabase;
--
跟当前数据库有关
go
SELECT
TABLE_NAME
表名
,
COLUMN_NAME
列名
,
CONSTRAINT_NAME
约束名
FROM
information_schema.CONSTRAINT_COLUMN_USAGE
WHERE
TABLE_NAME =
'student'
--2
查看指定表中缺省约束表达式
,
可以从
information_schema.columns
中查询
USE
MyDatabase;
--
跟当前数据库有关
go
SELECT
TABLE_NAME
表名
,
COLUMN_NAME
列名
,
COLUMN_DEFAULT
缺省表达式
FROM
information_schema.columns
WHERE
TABLE_NAME=
'student'
;
--3
查看缺省约束名
select
name
缺省约束名
from
sysobjects
where
object_id
(
'
表名
'
)=
parent_obj and
xtype=
'D'
--4
删除字段约束
语法格式:
drop
table
tablename
drop
constraint
constraintname
--
如:
ALTER
TABLE
student DROP
CONSTRAINT
PK__student__2F36BC5B772B9A0B
ALTER
TABLE
student DROP
CONSTRAINT
CK__student__s_sex__7913E27D
ALTER
TABLE
student DROP
CONSTRAINT
CK__student__s_birth__7A0806B6
ALTER
TABLE
student DROP
CONSTRAINT
CK__student__s_avgra__7BF04F28
ALTER
TABLE
student DROP
CONSTRAINT
DF__student__s_speci__039170F0
ALTER
TABLE
student DROP
CONSTRAINT
DF__student__s_dept__0579B962
修改字段数据类型
语法格式:
alter
table
tablename
alter
column
column_name newdatatype
如:修改长度
ALTER
TABLE
student
ALTER
COLUMN
s_name varchar
(
20);
--
注:对于字段长度的改变可以变大也可以变小但是变小的时候
,
其长度不能小于当前字段值
--
的最大长度。另外主键字段不能修改其数据类型
修改字段数据类型
--
要先删除约束
ALTER
TABLE
student
ALTER
COLUMN
s_no int
--
如果有约束应先删除
--
查看约束
USE
MyDatabase;
--
跟当前数据库有关
go
SELECT
TABLE_NAME
表名
,
COLUMN_NAME
列名
,
CONSTRAINT_NAME
约束名
FROM
information_schema.CONSTRAINT_COLUMN_USAGE
WHERE
TABLE_NAME =
'student'
--
删除约束
ALTER
TABLE
student
DROP
CONSTRAINT
PK__student__2F36BC5B18178C8A
--
注:如果修改数据类型的种类
(
如字符型转换为整型
),
应当能够保证当前的字段值能成功的
--
转换到改变后的数据类型
相关文章推荐
- T-SQL入門攻略之13-修改数据表
- T-SQL入門攻略之13-修改数据表
- T-SQL入門攻略之13-修改数据表
- T-SQL入門攻略之12-创建数据表
- T-SQL入門攻略之12-创建数据表
- T-SQL入門攻略之10-修改数据库alter database
- T-SQL入門攻略之13
- T-SQL入門攻略之12-创建数据表
- T-SQL入門攻略之10-修改数据库alter database
- T-SQL入門攻略之10-修改数据库alter database
- T-SQL入門攻略之12-创建数据表
- T-SQL入門攻略之10-修改数据库alter database
- SQL用check约束实现非工作时间不得修改数据
- 通过数据查询出来的sql不能被修改解决方案
- struts2中修改在控制台能执行sql,但不能修改数据库数据
- sql语句总结【重复数据修改调整】
- T-SQL入門攻略之10
- T-SQL入門攻略之11-查看数据库对象
- sql查询时能否查询多个栏目的数据,有数组“9,13,20,22”这是栏目ID
- SQL语句(五)数据的修改