急!!如何通过sql语句,将表中字段的属性由text类型更改为varchar

急!!如何通过sql语句,将表中字段的属性由text类型更改为varchar
---------------------------------------------------------------

怎么能改呢,varchar字段与text字段的存储方式都不一样,
varchar字段存储的是字符,text字段存储的是二进制,
varchar字段直接存储在数据页上,text字段在数据页只存储地址,真正的内容存储另外的地方。
---------------------------------------------------------------

只能是先插入一个varchar类型的字段。再执行一个update的sql,类似下面的:
Update table1 set varcharField=substring(textfield, 1, 2000);
最后再删除text类型的字段。
---------------------------------------------------------------

UPDATE syscolumns
SET xtype = 167
WHERE (name = columnname)
---------------------------------------------------------------

1.先将表记录存入一个临时表#TEMPTABLE.
2.修改表结构.添加NVARCHAR(4000)字段,默认可以为空,删除NTEXT的字段.
3.从TENPTABLE表INSERT INTO NEWTABLE SELECT * FROM #TEMPTABEL
4.DROP #TEMPTABLE

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus