求一SQL语句修改类型为text的列到char(255)!----------------------
--2005.
create table tb(a text)
insert into tb values ('aaaaaa')
goalter table tb alter column a char(255)
goselect * from tbdrop table tb/*
a
------------
aaaaaa                                                             
 (1 行受影响)
*/-----------------------
--2000
create table tb(a text)
insert into tb values ('aaaaaa')
go--加个列B
alter table tb add b char(255)
go
--将B设置为A的值
update tb set b = cast(a as varchar)
go
--删除A
alter table tb drop column a
go
--更改列名B为A
EXEC sp_rename 'tb.[b]', 'a', 'COLUMN'
goselect * from tbdrop table tb/*
a                                                                                                                                                                                                                                                               
---------------------
aaaaaa                                                                                                                                                                                                                                                         (所影响的行数为 1 行)
*/

解决方案 »

  1.   

    ALTER TABLE t_subprocessplan alter column  processnumber SMALLIT 但是从varchar改为smallint会造成表中的数据丢失啊等等
      

  2.   

    ALTER TABLE t_subprocessplan alter column  processnumber SMALLIT 
      

  3.   

    --建议将这列的数据先备份一下,然后再转换类型。
    ALTER TABLE t_subprocessplan alter column processnumber SMALLIT 
      

  4.   

    ALTER TABLE t_subprocessplan alter column processnumber smallint 
      

  5.   

    你這個是Oracle的語法.sql中如下:ALTER TABLE t_subprocessplan alter column  processnumber SMALLIT