如何用SQL语句或存储过程实现一个表中字段的数据类型由TEXT变为CHAR

wcq 2003-10-09 11:09:28
如题
...全文
135 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-10-09
  • 打赏
  • 举报
回复
例子:

create table tb(a text)
insert into tb values('abc')
exec sp_rename 'tb.a','b','column'
go
alter table tb add a varchar(8000)
update tb set a=cast(b as varchar(8000))
alter table tb drop column b
select * from tb
drop table tb
zjcxc 2003-10-09
  • 打赏
  • 举报
回复
--修改列名
exec sp_rename '表名.字段名','字段名_bak','column'
go
--转换数据
alter table 表名 add 字段名 varchar(8000)
update 表名 set 字段名=cast(字段名_bak as varchar(8000))
alter table 表名 drop column 字段名_bak
select * from tb
drop table tb
pengdali 2003-10-09
  • 打赏
  • 举报
回复
alter table tablename add aaa1 char(8000)

update tablename set aaa1=substring(aaa,1,8000)

alter table tablename drop column aaa

exec sp_rename 'tablename.aaa1','aaa'
txlicenhe 2003-10-09
  • 打赏
  • 举报
回复
alter table tablename add aaa1 varchar(8000)

update tablename set aaa1=left(aaa,8000)

alter table tablename drop column aaa

exec sp_rename 'tablename.aaa1','aaa',column
CrazyFor 2003-10-09
  • 打赏
  • 举报
回复
alter table tablename add aaa1 varchar(8000)

update tablename set aaa1=substring(aaa,1,8000)

alter table tablename drop column aaa

exec sp_rename 'tablename.aaa1','aaa'
pengdali 2003-10-09
  • 打赏
  • 举报
回复
alter table tablename add aaa1 text

update tablename set aaa1=aaa

alter table tablename drop column aaa

exec sp_rename 'tablename.aaa1','aaa'
wcq 2003-10-09
  • 打赏
  • 举报
回复
不行,因为用alter column 的字段数据类型不能为TEXT类型
txlicenhe 2003-10-09
  • 打赏
  • 举报
回复
eg:
alter table yourtable alter column cname varchar(100)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧