日期:2014-05-18  浏览次数:20350 次

修改列属性的问题
我有一张表a,有一列为S01,它的属性为decimal(12,2),默认值为0,表a里有数据n条(如:2.65,   3.24,   1.87等)

我要通过sql修改(因为我是用delphi写程序的,所以不要在企业管理器里直接修改)S01的属性为decimal(12,1),默认值为0,且表a里的数据自动四舍五入到小数后一位(结果应该是:2.7,   3.2,   1.9等)

我直接用alter   table   a   alter   column   S01   decimal(12,1)   是不行的,望高手指点




------解决方案--------------------
--測試
CREATE TABLE [dbo].[a](
[S01] [decimal](12, 2) NULL CONSTRAINT [DF_a_S01] DEFAULT ((0))
) ON [PRIMARY]
go
insert a select 2.65 union all select 3.24 union select 1.87
go
alter table a drop CONSTRAINT [DF_a_S01] --先去掉約束
go
alter table a alter column S01 decimal(12,1) --再修改字段類型
go
alter table a add CONSTRAINT [DF_a_S01] DEFAULT(0) for S01 --最后把約束加上去
go