我有问题使用SQL Server 2005将数据库字段从datetime
更改为integer
我的代码是......
alter table overtime alter column adate numeric(5)
使用此查询时出现错误,如此
不允许隐式转换 数据类型datetime到数据类型 数字,表格 'DaiichiPayroll.dbo.Overtime',专栏 '一个约会'。使用CONVERT函数 运行此查询。
任何解决方案?
答案 0 :(得分:6)
服务器无法隐式地将dateTime列转换为数字。其中一个解决方案是 -
答案 1 :(得分:2)
虽然Sachin的答案可能是最好的解决方案,但您应该知道该表仍将继续使用已删除列until you rebuild the clustered index的存储空间。
由于这个原因,如果有一些明确的convert
语法可以运行,例如,将8字节datetime
列更改为8字节bigint
,那将是非常好的列但AFAIK不存在。
另一种方法是使用SSMS为您生成脚本。这将生成一个重建整个表的脚本。如果你有一个大表或许多NCI,那么阻塞开销可能是不可接受的。