This problem arises when integrating two applications using two databases in same SQL Server 2005. Both applications have their own database on the same server but we have to transfer some data from one database to another. We are using triggers and stored procedures to do that.
If we insert data into the databases with SQL Server Management Studio there is no need for msdtc but if we use the application to insert data we get the error saying DTC is not enabled. We have no control over the application inserting data.
My question in short is why is msdtc required when using the application to insert data?
note: triggers are not making calls between the databases only the stored procedures are
'sqlncli for linked server returned message no transaction is active'
what is required to fix this. client is windows xp sp2 server is windows 2003 serve - Kevin Peris 2012-04-05 02:49
There are quite a few situations where one may be using MSDTC indirectly: clustered server, configured replication, most usages of COM+, and so on.
However, as already pointed by @MitchWheat in a comment, SQL Server 2005 (as well as the Oracle resource manager) specifically uses MSDTC whenever you have more than one database connection in a single transaction scope. This behavior has been fixed in SQL Server 2008 (if you consider it an inconvenience).
In your case, this is a client side, not a server side problem, but it can generally be either.