哈哈,这个问题我能看出来,给你改一下!//开始建立
CREATE trigger [orderTri] on [sale_order]
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
select @numrows=@@rowcount
if @numrows=0
return
delete item
from sale_order t2,deleted t1
where t2.order_id=t1.order_id
return 0
error:
raiserror @errno @errmsg
rollback transaction
end
//结束
你的
error:
raiserror @errno @errmsg
rollback transaction好象是画蛇添足!哈!哈哈!哈哈哈!
CREATE trigger [orderTri] on [sale_order]
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
select @numrows=@@rowcount
if @numrows=0
return
delete item
from sale_order t2,deleted t1
where t2.order_id=t1.order_id
return 0
error:
raiserror @errno @errmsg
rollback transaction
end
//结束
你的
error:
raiserror @errno @errmsg
rollback transaction好象是画蛇添足!哈!哈哈!哈哈哈!
SQL Server版://开始建立
CREATE trigger [orderTri] on [sale_order]
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
set @errmsg='This message is custom'
select @numrows=@@rowcount
if @numrows=0
return
delete
from sale_order t2,deleted t1
where t2.order_id=t1.order_id
SET @errno=@@ERROR
IF @@error<>0
BEGIN
raiserror (@errmsg,15,1) --要麼只要@errno,要麼只要@errmsg,關於Raiserror更多的資訊可參考Books On Line.
rollback transaction
END
end
//结束@@表示說這是一個由SQL Server維護的全域變量,對所有的Session都有效。我們雖然也可以Declare @@abc這樣的變量,但不是全域的變量,假的。
CREATE trigger [orderTri] on [sale_order]
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
set @errmsg='This message is custom'
select @numrows=@@rowcount
if @numrows=0
return
delete //////////我必须在此处指定为delete item才能通过检测
from sale_order t2,deleted t1
where t2.order_id=t1.order_id
SET @errno=@@ERROR
IF @@error<>0
BEGIN
raiserror (@errmsg,15,1) --要麼只要@errno,要麼只要@errmsg,關於Raiserror更多的資訊可參考Books On Line.
rollback transaction
END
end请看上面的delete语句行,指定了delete item,我在SQL Server的企业管理器中删除sale_order表格的一条记录,但是item表格中的记录没有删除,什么原因呢???
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
set @errmsg='This message is custom'
select @numrows=@@rowcount
if @numrows=0
return
delete sale_order
from sale_order t2,deleted t1
where t2.order_id=t1.order_id
SET @errno=@@ERROR
IF @@error<>0
BEGIN
raiserror (@errmsg,15,1) --要麼只要@errno,要麼只要@errmsg,關於Raiserror更多的資訊可參考Books On Line.
rollback transaction
END
end
看来你是个MM!看来你是个基本SQL都不熟悉的MM!哈!哈哈!哈哈哈!
CREATE trigger [orderTri] on [sale_order]
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
set @errmsg='This message is custom'
select @numrows=@@rowcount
if @numrows=0
return
delete sale_order
from sale_order t2,deleted t1
where t2.order_id=t1.order_id
SET @errno=@@ERROR
IF @errno<>0
BEGIN
raiserror (@errmsg,15,1) --要麼只要@errno,要麼只要@errmsg,關於Raiserror更多的資訊可參考Books On Line.
rollback transaction
END
end
Hahahahahaha(哈,哈哈,哈哈哈...):
用你(2002-1-2 12:39:02)发给的帖子也不行,我在SQL Server企业管理器上删除sale_order中的记录,item中对应的记录也没删除,好怪呀!是不是delete语句的参数还有问题呀?
for delete
as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(25)
set @errmsg='This message is custom'
select @numrows=@@rowcount
if @numrows=0
return
delete item
from item t2,deleted t1
where t2.order_id=t1.order_id
SET @errno=@@ERROR
IF @@error<>0
BEGIN
raiserror (@errmsg,15,1) --要麼只要@errno,要麼只要@errmsg,關於Raiserror更多的資訊可參考Books On Line.
rollback transaction
END
end
//结束
Hahahahahaha(哈,哈哈,哈哈哈...)、N_chow(一劍飄香++)
以后请多多指教 your alis!!!!!