Q: Can TransactionScope be used across 2 databases on the same Microsoft SQL server? I have a situation where when I update user I also have to keep track of all changes made to the user - sort of like activity log for the user table. This activity log is located in a different database on the same DB server. But when I wrap these 2 DB calls in a transaction scope I get an error.
So I was wondering if there is a way to bypass/resolve this issue?

A: Care to share what exactly does the error say? Anyway from the top of my head this usecase should be supported by TransactionScope. As far as I remember though the transaction will be promoted to a distributed transaction and that needs the Distrbuted Transaction Coordinator 
service (MSDTC) to be installed and running on your machine
EDIT: seeing the error message it seems the 2 databases are sitting on different machines so the distributed transaction needs to be done/synchronized over the network. That means that MSDTC is installed but not properly configured for this use case. Look it up in the documentation and have a chat with your sys admin.

A: If you are using SQL Server 2008 you can wrap connections to the same SQL Server in a transaction scope without MSDTC, provided you use the same connection string for each connection.
To use the same connection string, you will need to specify the database name (for at least one of your databases) explicitly in your queries, e.g.
SELECT ... FROM db1..Table1 ...

SELECT ... FROM db2..Table2 ...


A: You need to ensure that MSDTC is installed and configured. By configured, I mean you need to enable network DTC acccess.
This can get you started: http://technet.microsoft.com/en-us/library/cc753866(v=ws.10).aspx

A: I don´t believe this possible since a transaction is associated with only one connection. What you need to achieve this behavior is to have a parallel procedure (i.e a concurrent thread) that keeps reading the log database each n seconds
