sql server 给表和它的存储过程同时添加列

1.原来的存储过程是这样的:假设更新目标表是table,存储过程处理最近产生的数据temp_table,最后再插入目标表:insertintotableselect*fr... 1. 原来的存储过程是这样的:
假设更新目标表是table,存储过程处理最近产生的数据temp_table,最后再插入目标表:
insert into table select * from temp_table

2. 现在我需要在目标表table中添加两个字段x和y,遇到的问题是:
如果先在table里添加字段,再到存储过程给temp_table添加字段,保存时就会提示“列名或所提供值的数目与表定义不匹配。”
如果先在存储过程中给temp_table添加字段:
alter table temp_table add x numeric(18,4)
alter table temp_table add y numeric(18,4)
这时保存是成功的。但是table里的历史数据并没有这两个字段,是不是需要手动添加?可是添加之后,再到存储过程中保存就出错了,还是“列名或所提供值的数目与表定义不匹配。”

alter table table add x numeric(18,4)
alter table table add y numeric(18,4)

问题出在哪?
展开
 我来答
micro0369
2014-08-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4317万
展开全部

insert into table select * from temp_table


这个语法中,insert 和 select 都写清楚列名:

insert into table(col1,col2,...) select col1,col2,... from temp_table
更多追问追答
追问

按照你说的加了,提示列名无效,742行:

但是我这个过程的前面已经新增了列啊,在659行和660行:

麻烦帮忙看看,我可以追分!

追答
提示的dw_orderitem表中没有  mkt_fee 和 t_sales列啊。

你确认有吗?连接的 数据库对不对 ?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式