0
我目前正在与一个旧的应用程序,我不拥有任何代码工作,但我真的需要一些新的逻辑添加到应用程序。SQL服务器:触发更新刚刚插入的行
我发现做到这一点的唯一方法是搞砸数据库数据,并用触发器改变我需要的任何东西。
我写了下面的触发应该更新刚插入行2列:
CREATE TRIGGER addLoteInfo ON fi
FOR INSERT
AS
DECLARE
@loteN varchar(15),
@refN varchar(18),
@CientifN varchar(40),
@CaptureZ varchar(20)
declare MY_CURSOR cursor for
select
i.lote, i.ref
from inserted i
open MY_CURSOR
fetch next from MY_CURSORinto @loteN, @refN
while @@fetch_status = 0
begin
SELECT @CientifN = u_ncientif FROM SE where lote LIKE @loteN and ref LIKE @refN;
SELECT @CaptureZ = u_zcaptura FROM SE where lote LIKE @loteN and ref LIKE @refN;
UPDATE FI SET [email protected], [email protected];
fetch next from CURSOR_TESTE into @loteN, @refN
end
close MY_CURSOR
deallocate MY_CURSOR
问题是,当一个新的注册表被插入,似乎它会陷入僵局。
它不可能做我想做的事情?
你能帮助我另一种方法吗?
为什么更新刚插入的行,而不是简单地将正确的数据与开始? – Oded 2012-01-02 18:27:35
插入由应用程序完成的,我没有进入他的源代码进行更改,以包括2个aditional的领域。 – sakana 2012-01-02 18:29:25
Eww。触发器+游标+没有应用程序源代码=痛苦的食谱。祝你好运! – RickNZ 2012-01-03 03:33:34