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

很简单的 存储过程问题~~
SQL code

CREATE PROCEDURE ChanceAdd
@cChanceCode varchar(50), @cChanceName varchar(50),@iId int
insert into KHGL_Chance(cChanceCode,cChanceName,iId)
                 values(@cChanceCode,@cChanceName,@iId)
Go


我想在KHGL_Chance增加记录的同时 更新另一个表的一项
我接在上面语句后写的
declare @iCustomerId int
update KHGL_Customer set iCusStatus=1 where iCustomerId=@iCustomerId
检查能通过,保存后。打开存储过程发现还是原来的存储过程,也就是说
declare @iId int
update KHGL_Customer set iCusStatus=1 where iId=@iId
这一句没能保存。
各位兄弟,怎么要怎么写阿。我的SQL实在是不怎么样~~
注:@iId 参数在两个表中是相同的。也就是说在第一个表中保存传过来得iId 的值,第二个表中利用传过来得iId更新

------解决方案--------------------
关掉数据库,重新打开
或者关掉电脑,重新启动
------解决方案--------------------
alter PROCEDURE ChanceAdd
@cChanceCode varchar(50), @cChanceName varchar(50),@iId int
insert into KHGL_Chance(cChanceCode,cChanceName,iId)
values(@cChanceCode,@cChanceName,@iId)

declare @iId int 
update KHGL_Customer set iCusStatus=1 where iId=@iId 
Go

------解决方案--------------------
"我想在KHGL_Chance增加记录的同时 更新另一个表的一项"
触发器
------解决方案--------------------
SQL code

CREATE PROCEDURE ChanceAdd
as
@cChanceCode varchar(50), @cChanceName varchar(50),@iId int
insert into KHGL_Chance(cChanceCode,cChanceName,iId)
                 values(@cChanceCode,@cChanceName,@iId)
update KHGL_Customer set iCusStatus=1 where  iCustomerId=@iId
Go