现在的位置: 首页 > 综合 > 正文

SQL表结构操作语句

2013年05月06日 ⁄ 综合 ⁄ 共 1275字 ⁄ 字号 评论关闭

迁移数据,可以复制自动编号啦!
SET   IDENTITY_INSERT  DATA   ON 
 INSERT   INTO   DATA(ID, A1, A2)   SELECT ID, UserName, Email   FROM OLDDATA

A.   重命名表  
  下例将表   customers   重命名为   custs。  
   
  EXEC   sp_rename   'customers',   'custs'   
    
B.   重命名列  
  下例将表   customers   中的列   contact   title   重命名为   title。  
   
  EXEC   sp_rename   'customers.[contact   title]',   'title',   'COLUMN'   
 

C.删除列

ALTER TABLE 表名 DROP COLUMN 列名

D.添加列

ALTER TABLE  表名  ADD  列名   VARCHAR(20) NULL" 

---------以下为(创建新列属性)然后(复制旧列数据)后再(删除旧列名)---------------------------------

--添加列  
  alter   table   table_A   add   column_C   varchar(20)  
  go  
  --添加数据  
  update   table_A   set   column_C=column_B  
  go  
  --添加默认  
  alter     table     table_A     add     constraint     myColumnDef     default     'c'     for     column_C  
  go  
  --删除旧默认  
  declare   @name   varchar(20)  
  select   @name=b.name   from   syscolumns   a,sysobjects   b   where   a.id=object_id('tablename')   and   b.id=a.cdefault   and   a.name='column_B'   and   b.name   like   'DF%'  
  exec('alter   table   table_A     drop   constraint   '+@name)    
  go  
  --删除旧列  
  alter   table   table_A     drop   column   column_B  
  go

----------------以下为删除带默认值的列名-------------

declare @name varchar(20)

select @name = b.name from sysobjects b join syscolumns a on

b.id = a.cdefault where a.id = object_id('table_name') and a.name = 'column_name'

exec('alter table test drop constraint '+@name)

去掉列的默认值后(其实是去掉列约束),再执行alter table table_name drop column column_name 语句,列被删除了。当然也可以一起执行整个语句。

抱歉!评论已关闭.