在原有的表中新增加了一列,但是在存储过程中却不能识别这个列,是怎么回事。

以前存在一个存储过程,可以更新表中的一些字段。现在我在原来的表中新加了一列,想在原来的存储过程中,也更新这个列的数据,可是,存储过程中总是提示这个列无效,就是无法识别这个列。不知道是怎么回事,是在表中设置新增加的列的属性才能让存储过程识别,还是在存储过程中做某些设置可以识别到这个新增加的列?sqlserver2012,希望各位高手帮忙解决一下。。
代码如下:
begin update GSP_PTYPZKYH_HZ set is_zx = '是' from GSP_PTYPZKYH_HZ a inner join tmp_bill_GSP_KFYH_ZYZKYH_dssub1 b on a.djbh = b.djbh and b.GZID = @gzid if @@error<>0 or @@rowcount = 0 begin set @return=2 goto err_lab end
提示is_zx列名无效。
最新回答
た靑木知湫ッ

2024-11-25 10:26:47

 跟那些没关啊,,,

你先验证下吧,,,

首先

select top 1 is_zx from GSP_PTYPZKYH_HZ

这样,看能查吗,如果能,说明字段加上了,就说明是你的过程的问题;

如果上面没问题,把这段再改下试试

  update a  set  a.is_zx = '是'
 from GSP_PTYPZKYH_HZ a inner join tmp_bill_GSP_KFYH_ZYZKYH_dssub1 b
追问

现在是这个状态 :虽然查询没有什么问题,但是依然显示列明无效。晕了!

追答
改成我那个更新语句试试
追问
还是同样的问题,提示列明无效,但是直接在数据库中执行这个存储过程,可以正常执行。
追答
直接在数据库中执行这个存储过程,可以正常执行。什么意思?
你不是不能alter 那个过程,提示字段无效吗,怎么又能执行了
追问
就向上个图一样,虽然提示这个列明无效,但是查询语句依然可以正常的执行。直接执行存储过程也可以正常的执行,但是我程序调用这个存储过程的时候还是会出错。
追答
你的意思是你在数据库里已经没问题了,在程序调用数据库过程的时候会报错?
厌恶点

2024-11-25 08:00:35

提示这个列无效,不一定是不能识别这个列。
可能是其它的一些语法错误
你可以简单的自己写个
存储过程
或者
sql语句
测试一下。
只影

2024-11-25 09:24:13

我也遇到这个问题了 解决了吗? 通过plsql中通过编辑表 新增的四个列 在存储过程里编译时提示无效,拿出来在sql窗口中直接执行就没问题,只有在存储过程中不行