数据库类型转换 varchar int
把数据库里的数据类型varchar转换成int。。。我的思路就是,用update把值都换成相应的值再修改类型。。。但是update怎么换啊=。=-------------...
把数据库里的数据类型varchar转换成int。。。
我的思路就是,用update把值都换成相应的值
再修改类型。。。
但是update怎么换啊=。=
---------------
哎,我想出来个馊主意,那就是,先转下,然后捕获异常。。。
在异常的时候,把数据变成正确的类型-。-
够馊啊 展开
我的思路就是,用update把值都换成相应的值
再修改类型。。。
但是update怎么换啊=。=
---------------
哎,我想出来个馊主意,那就是,先转下,然后捕获异常。。。
在异常的时候,把数据变成正确的类型-。-
够馊啊 展开
4个回答
展开全部
你的思路是对的,必须保证字段里全部是数字才可以修改
例:表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)
例:表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)
展开全部
修改的字段类型的话 首先记录应该是空的,如果不能删除数据,那只能在数据取出来的时候转换掉
够搜
够搜
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在代码里面,需要进行强制类型转换
.convert toint
.convert toint
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询