SQL Server Forums
Profile | Register | Active Topics | Members | Search | Forum FAQ
 
Register Now and get your question answered!
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 SQL Server 2008 Forums
 Transact-SQL (2008)
 DeadLock
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

egemen_ates
Yak Posting Veteran

Turkey
63 Posts

Posted - 06/22/2012 :  05:59:00  Show Profile  Reply with Quote
I create trigger my trigger show belown as ,some time update statement given deadlock for orders table.how can i solve this case

CREATE TRIGGER [dbo].[add_orders] ON [dbo].[ORDERS] INSTEAD OF INSERT,UPDATE,DELETE
AS
BEGIN
SET NOCOUNT ON

SET NOCOUNT ON;
IF EXISTS(SELECT TOP 1 ORDER_ID FROM INSERTED)
BEGIN
IF EXISTS(SELECT TOP 1 ORDER_ID FROM DELETED)--UPDATE
BEGIN
DELETE FROM workcube_cf_2012_1.dbo.ORDERS_VIRTUAL WHERE ORDER_ID = (SELECT ORDER_ID FROM INSERTED)
INSERT INTO
dbo.ORDERS_VIRTUAL
(
ORDER_ID,
ORDER_STATUS,
RESERVED,
DELIVER_DEPT_ID,
LOCATION_ID
)
SELECT
ORDER_ID,
ORDER_STATUS,
RESERVED,
DELIVER_DEPT_ID,
LOCATION_ID
FROM
INSERTED
END
ELSE--INSERT
BEGIN
INSERT INTO
dbo.ORDERS_VIRTUAL
(
ORDER_ID,
ORDER_STATUS,
RESERVED,
DELIVER_DEPT_ID,
LOCATION_ID
)
SELECT
ORDER_ID,
ORDER_STATUS,
RESERVED,
DELIVER_DEPT_ID,
LOCATION_ID
FROM
INSERTED
END
END
ELSE
BEGIN
IF EXISTS(SELECT TOP 1 * FROM DELETED)--DELETE
BEGIN
DELETE FROM dbo.ORDERS_VIRTUAL WHERE ORDER_ID = (SELECT ORDER_ID FROM DELETED)
END
END
SET NOCOUNT OFF
END;

namman
Constraint Violating Yak Guru

USA
259 Posts

Posted - 06/22/2012 :  16:28:21  Show Profile  Reply with Quote
Fixing deadlock is time consumming, and we need more info than that

Could you post the trace file of that deadlock?

Also, have a quick question.

For Update, you delete rows from table ORDERS_VIRTUAL WHERE ORDER_ID = (SELECT ORDER_ID FROM INSERTED). Then you insert into the same table with data, and the same ORDER_ID ?

If so, why don't you just update the table. Do I miss something.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
SQL Server Forums © 2000-2009 SQLTeam Publishing, LLC Go To Top Of Page
This page was generated in 0.05 seconds. Powered By: Snitz Forums 2000