数据库类型转换 varchar int

把数据库里的数据类型varchar转换成int。。。我的思路就是,用update把值都换成相应的值再修改类型。。。但是update怎么换啊=。=-------------... 把数据库里的数据类型varchar转换成int。。。
我的思路就是,用update把值都换成相应的值
再修改类型。。。
但是update怎么换啊=。=
---------------
哎,我想出来个馊主意,那就是,先转下,然后捕获异常。。。
在异常的时候,把数据变成正确的类型-。-
够馊啊
展开
 我来答
小乌龟iK
2009-08-06 · TA获得超过3581个赞
知道大有可为答主
回答量:1885
采纳率:57%
帮助的人:630万
展开全部
你的思路是对的,必须保证字段里全部是数字才可以修改
例:表table2中的列id为int型,现改为varchar 型
alter table table2 alter column id varchar

如果要修改整个数据库的类型,可以用下面的语句
例子:把整个数据库的varchar 类型转换为nvarchar(放在查询分析器里执行)
declare @sql nvarchar(4000)
set @sql=''
select @sql=@sql+'alter table '+a.name+' alter column '+b.name +' nvarchar('+left(b.length,99)+')'+char(13)
from
sysobjects a inner join syscolumns b on a.id=b.id inner join systypes c on b.xusertype=c.xusertype
where a.xtype='U' and c.name='varchar' --and name >= '?'
order by b.name
print @sql

declare @sql varchar(8000)
select @sql = ''

select @sql = @sql + ' alter table [' + object_name(id) +'] alter column ['+name+'] nvarchar('+convert(varchar(4),length)+') '+char(13) from syscolumns
where objectproperty(id,'IsUserTable')=1 and xusertype=167

print @sql
alter table Table1 alter column a nvarchar(50)
alter table sipfriends alter column accountcode nvarchar(20)
ws528
2009-08-07 · 贡献了超过386个回答
知道小有建树答主
回答量:386
采纳率:0%
帮助的人:64.7万
展开全部
修改的字段类型的话 首先记录应该是空的,如果不能删除数据,那只能在数据取出来的时候转换掉

够搜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c4c5ca70a
2009-08-06 · TA获得超过527个赞
知道小有建树答主
回答量:1222
采纳率:0%
帮助的人:179万
展开全部
declare @sql nvarchar(4000)
set @sql=''
select @sql=@sql+'alter table '+a.name+' alter column '+b.name +' nvarchar('+left(b.length,99)+')'+char(13)
from
sysobjects a inner join syscolumns b on a.id=b.id inner join systypes c on b.xusertype=c.xusertype
where a.xtype='U' and c.name='varchar' --and name >= '?'
order by b.name
print @sql

declare @sql varchar(8000)
select @sql = ''

select @sql = @sql + ' alter table [' + object_name(id) +'] alter column ['+name+'] nvarchar('+convert(varchar(4),length)+') '+char(13) from syscolumns
where objectproperty(id,'IsUserTable')=1 and xusertype=167

print @sql
alter table Table1 alter column a nvarchar(50)
alter table sipfriends alter column accountcode
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱能止恨
2009-08-06 · TA获得超过524个赞
知道小有建树答主
回答量:352
采纳率:0%
帮助的人:174万
展开全部
在代码里面,需要进行强制类型转换

.convert toint
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式