L
liaotw
Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL_SERVER中,有很大的可能是在数据库中写入触发器,在触发器中又有可能进行一些
数据的插入、删除等动作。比如我有一个触发器,代码如下:
Create Tirgger on Materials
For Insert
AS
BEGIN
INSERT INTO NoticeCode(物料代码) SELECT 物料代码 FROM inserted
WHERE inserted.性质='产成品'
END
/*----------------------------------------------------------------------*/
在此触发器中,要实现的目的是,如果在Materials表中进行添加记录,则如果记录的“性
质”字段的值为“产成品”,那么将此记录的物料代码字段值添加到NoticeCode表中。
因为在触发器进行触发时,产生了inserted表。而在触发器中,又使用了INSERT语句。此语
句又会产生一个inserted表。我在SQL_SERVER的企业控制台上进行手动的添加Materials记
录,系统不会发生错误。但是,如果我在程序中,无论使用VB、VC++、DELPHI,进行记录
的添加。程序都会发生一个错误,提示:您最后读取的记录已经发生了更改。
这是为什么?
为什么?????????
数据的插入、删除等动作。比如我有一个触发器,代码如下:
Create Tirgger on Materials
For Insert
AS
BEGIN
INSERT INTO NoticeCode(物料代码) SELECT 物料代码 FROM inserted
WHERE inserted.性质='产成品'
END
/*----------------------------------------------------------------------*/
在此触发器中,要实现的目的是,如果在Materials表中进行添加记录,则如果记录的“性
质”字段的值为“产成品”,那么将此记录的物料代码字段值添加到NoticeCode表中。
因为在触发器进行触发时,产生了inserted表。而在触发器中,又使用了INSERT语句。此语
句又会产生一个inserted表。我在SQL_SERVER的企业控制台上进行手动的添加Materials记
录,系统不会发生错误。但是,如果我在程序中,无论使用VB、VC++、DELPHI,进行记录
的添加。程序都会发生一个错误,提示:您最后读取的记录已经发生了更改。
这是为什么?
为什么?????????