用语句添加列

wyd531 2008-11-07 11:36:21

ALTER TABLE #temp add @i numeric(18,2) null

请问怎样在添加列时的列名可以用变量,因为我需要添加用户输入的数量,并每个列名按日期的天数
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
等不到来世 2008-11-07
  • 打赏
  • 举报
回复
declare @sql nvarchar(200)
set @sql='ALTER TABLE #temp ADD ['+rtrim(@i)+'] numeric(18,2) null'
exec(@sql)
zjcxc 元老 2008-11-07
  • 打赏
  • 举报
回复
不支持, 可以用动态语句解决
EXEC(N'ALTER TABLE  #temp add ' + @i + ' numeric(18,2) null')
gahade 2008-11-07
  • 打赏
  • 举报
回复
declare @s varchar(100)
set @s='ALTER TABLE #temp add '+rtrim(@i)+' numeric(18,2) null'
exec @s
csdyyr 2008-11-07
  • 打赏
  • 举报
回复
create  table tb(col int)
insert tb
select 1

select * from tb
/*
col
-----------
1
*/
alter table tb add col2 as col*2 --默认值
insert tb(col)
select 2

select * from tb
/*
col col2
----------- -----------
1 3
2 4
*/
drop table tb
wyd531 2008-11-07
  • 打赏
  • 举报
回复
值是计算出来的,是有两个列的值相加的,可以写成 default a+b 这样的吗
csdyyr 2008-11-07
  • 打赏
  • 举报
回复
create  table tb(col int)
insert tb
select 1

select * from tb
/*
col
-----------
1
*/
alter table tb add col2 int default 2 --默认值
insert tb(col)
select 2

select * from tb
/*
col col2
----------- -----------
1 NULL
2 2
*/
drop table tb
wyd531 2008-11-07
  • 打赏
  • 举报
回复
谢谢以上俩位,可以了,我在想问一下,那怎么在创建的时候就设置值呢.

34,575

社区成员

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

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