我有一个表table_name
有50个十进制(18,0)列,我想将它的数据类型更改为十进制(18,6)
我正在尝试
ALTER TABLE [table_name] ALTER COLUMN [column_name] [data_type]
但为此,我要查询50次。
我如何在一个查询中执行此操作
答案 0 :(得分:6)
您可以通过执行动态SQL查询轻松完成。
<强>查询强>
declare @sql as varchar(max);
select @sql = stuff((
select 'alter table [your_table_name]
alter column [' + [column_name] + '] decimal(18, 6);'
from information_schema.columns
where [table_name] = 'your_table_name'
and [data_type] = 'decimal'
for xml path('')
)
, 1, 0, ''
);
exec(@sql);
答案 1 :(得分:0)
您必须添加由逗号分隔的所有colunm,即。
ALTER TABLE [table_name] ALTER COLUMN [column_name1] [data_type],[column_name2] [data_type],依此类推;