sql之操作数据库中的表

增加字段
alter table table_name add column_name varchar(200)
删除字段
ALTER TABLE table_NAME DROP COLUMN column_NAME
修改字段类型
ALTER TABLE table_name ALTER COLUMN column_name new_data_type
修改表字段的长度(修改表结构)
        alter table table_name modify column_name varchar(40) ;
改名
sp_rename
更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
语法
sp_rename [ @objname = ] ’object_name’ ,
    [ @newname = ] ’new_name’
    [ , [ @objtype = ] ’object_type’ ]
--假设要处理的表名为: tb
--判断要添加列的表中是否有主键
if exists(select 1 from sysobjects where parent_obj=object_id(’tb’) and xtype=’PK’)
begin
print ’表中已经有主键,列只能做为普通列添加’
--添加int类型的列,默认值为0
alter table tb add 列名 int default 0
end
else
begin
print ’表中无主键,添加主键列’
 查询表中的某些字段重复记录
         select count(*),column_name from table_name group by column_name having count(*)>1;
查询并修改数据(如将67001改为68701,67101改为68801)
        select code,(’68’ || (substr(code, 2, 1) + substr(code,3,1)) || substr(code,4,2)) as code2 from table_name where code like ’67___’ ;
        update table_name set code = (’68’ || (substr(code, 2, 1) + substr(code,3,1)) || substr(code,4,2)), parentid=’68’  where code like ’67___’ 
 
 
 
带默认值的写法
 

BEGIN TRANSACTION 

GO 

ALTER TABLE dbo.gl_gemblitz_users ADD  uAppUser varchar(1000) NULL,  uAppUserInfo text NULL,  uFaceInfo varchar(50) NULL 

GO 

ALTER TABLE dbo.gl_gemblitz_users ADD CONSTRAINT  DF_gl_gemblitz_users_uAppUser DEFAULT ('') FOR uAppUser 

GO 

ALTER TABLE dbo.gl_gemblitz_users ADD CONSTRAINT  DF_gl_gemblitz_users_uAppUserInfo DEFAULT ('') FOR uAppUserInfo 

GO 

ALTER TABLE dbo.gl_gemblitz_users ADD CONSTRAINT  DF_gl_gemblitz_users_uFaceInfo DEFAULT ('') FOR uFaceInfo 

GO 

COMMIT  

update

 dbo.gl_gemblitz_users set uAppUser='',uAppUserInfo='',uFaceInfo=''

 

 

 

重命名列名

EXECUTE sp_rename N'TableName.oldColum', N'newColum', 'COLUMN'

 

posted @ 2011-01-07 16:32  海底的鱼  阅读(234)  评论(0)    收藏  举报