请教数据库字段类型的更改!

异想天开的妄想狂 2003-07-23 03:50:42
我的数据库某个字段类型是Nvarchar ,想改为numeric
但是保存时警告会发生数据丢失

还有一个字段类型datetime 要改为
smalldatetime

如果不理会它强行更改会提示不能更改!请问如何才能更改此字段?
...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
woyaofengle 2003-07-23
  • 打赏
  • 举报
回复
select cast(a as numreic) as aa,cast(b as smalldatetime)
into #tem from tablename
pengdali 2003-07-23
  • 打赏
  • 举报
回复
直接改就是了,它提示你,你就按确定继续改

如果还不行,用代码:

alter table tablename add 某个字段1 numeric

update tablename set 某个字段1=某个字段

alter table tablename drop column 某个字段

exec sp_rename 'tablename.某个字段1','某个字段'
CrazyFor 2003-07-23
  • 打赏
  • 举报
回复
如:

字段类型是Nvarchar ,改为numeric

select case when isnumeric(Nvarchar字段)=1 then cast(Nvarchar字段 as numeric(28,6)) else 0 end ,..... into #temp from 表


nchln 2003-07-23
  • 打赏
  • 举报
回复
总之蛮麻烦的方法。
csdnwhycn 2003-07-23
  • 打赏
  • 举报
回复
1.用加字段再删字段。
2。用临时表。
直接类型可能使数据丢失
txlicenhe 2003-07-23
  • 打赏
  • 举报
回复
alter table yourTable add newField numeric
update yourTable set newField = oldField
alter table yourTable drop column oldField
exec sp_rename 'newField','oldField','column'
friendliu 2003-07-23
  • 打赏
  • 举报
回复
select cast(a as numreic) as aa,cast(b as smalldatetime)
into #tem from tablename
lhpgh 2003-07-23
  • 打赏
  • 举报
回复
更改字段类型是会丢失数据的,你可以新发建一个字段,再把需要改类型的那个字段类型追加进去就可以了,追加时只能转化类型即可。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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