Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Transaction context in use by another session

Author  Topic 

sridhar.gudeti@gmail.com
Starting Member

1 Post

Posted - 2009-05-18 : 07:08:40
Hello,

Please bare with me as I am new to this. We have two SQL 2005 Database Systems. After an insert at a MyTable1 in Database MyDB1, TR_MyTrigger1 is fired which tries to insert a record in MyTable2 table on Database MyDB2 on Server2. Now I always get the error: Transaction context in use by another session - Msg 3910.

If I write insert statement individually (see below bold) it work, but I can't insert thru trigger. How can I avoid this?

Thank you for your time.

Best Regards
Sridhar



1) Server Name: Server1
a) Database Name : MyDB1

Table Creation:
Create Table MyTable1(Sno int, Name varChar(100))

Trigger Creation:
Create Trigger dbo.TR_MyTrigger1 on dbo.MyTable1
for Insert
as
Declare @Sno int,
@Name varChar(100)

Select @Sno = Sno,
@Name = Name
From Inserted

Set Ansi_Nulls on
Set Ansi_Warnings on

Set XACT_ABORT ON
BEGIN DISTRIBUTED TRAN

Selct @SQL1 = 'Insert into Server2.MyDB2.DBO.MyTable(Sno,Name) Values(' + Convert(Varchar(15),@Sno)+','+'''+@Name+''')'
Exec @SQL1

IF XACT_STATE() = -1
BEGIN
PRINT 'ROLLBACK TRAN'
ROLLBACK TRAN
END
ELSE
IF XACT_STATE() = 1
BEGIN
PRINT 'COMMIT TRAN'
COMMIT TRAN
END
ELSE
IF XACT_STATE() = 0
BEGIN
PRINT 'NO TRANSACTIONS'
END
SET XACT_ABORT OFF




2) Server Name: Server2
a) Database Name: MyDB2

Table Creation:
Create Table MyTable1(Sno int, Name varChar(100))



Insert into Server2.MyDB2.DBO.MyTable(Sno,Name) Values(1,'Sri')
   

- Advertisement -