SQL语句修改字段类型长度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sql语句修改字段属性
如果数据量非常大,达到几百万条记录以上,使用企业管理器来更改字段类型,很多时候会超时,更改不成功,这时可以使用sql语句来更改,如下:
a、更改字段类型长度
alter table 表
alter column 字段名类型的长度--varchar(60)
例:把城市表的城市名字段有原来的长度20改为30
alter table testcity
alter column cityname varchar(30)
b、更改字段类型
alter table 表
alter column 字段名更改后的类型
例:把城市表的城市名字段有原来的varchar类型改为int类型 alter table testcity alter column cityname int
如果sno字段原来不为空:
alter table student alter column sno varchar(10) not null 如果sno字段原来为空:
alter table student alter column sno varchar(10)
因为不管以前的字段是否允许为空,执行
alter table student alter column sno varchar(10)
后该字段都会变为允许为空。还有就是执行这类修改操作时最好是空表,如果有数据,可能会失败。因为有些数据类型之间可能不能隐式的转换或者根本就不能转化,比如“abc”要转换成int型。所以,一切还要自己注意控制。
c、添加not null约束
alter table 表 alter column 字段名 int not null
例:把cid不能输入空值
alter table testcity alter column cid int not null
d、设置主键
alter table 表 add constraint 主键名 primary key(字段名) 例:把cid设为主键
alter table testcity add constraint pk_cid primary key(cid) e、更改字段名
exec sp_rename 表名.字段名,更改后的字段名,column f、添加字段名
alter table 表 add 字段名字段类型 default null篇二:用sql语句添加删除修改字段
1.增加字段
alter table docdsp add dspcode
char(200)
2.删除字段
alter table table_name drop column
column_name
3.修改字段类型
alter table table_name alter column
column_name new_data_type
4.sp_rename 改名
exec sp_rename [dbo].[table_1].[filedname1], filedname2, column 更改当前数据
库中用户创建对象(如表、列或用户定义数据类型)的名称。
语法
sp_rename [ @objname = ] object_name ,[ @newname = ] new_name,分类信息; [ , [ @objtype =] object_type ]
如:exec sp_rename newname,partstock
5.sp_help 显示表的一些基本情况
sp_help object_name
如:exec sp_help partstock
6.判断某一表partstock中字段partvelocity是否存在
if
exists (select * from syscolumns where
id=object_id(partstock) and name=partvelocity)
partvelocity exists
else print partvelocity not
exists
另法:
判断表的存在性:
select count(*) from sysobjects where type=u
and name=你的表名
判断字段的存在性:
select count(*) from syscolumns
where
id = (select id from sysobjects where type=u and name=你的表名)
and name = 你要判断的字段名
一个小例子
--假设要处理的表名为:
tb
--判断要添加列的表中是否有主键
if exists(select 1 from sysobjects where
parent_obj=object_id(tb) and xtype=pk)
begin
表中已经有主键,列只能做为普通列添加
--添加int类型的列,默认值为0
alter table tb add 列名 int default
end
else
begin
print 表中无主键,添加主键列
--添加int类型的列,默认值为0
alter
table tb add 列名 int primary key default 0
end