C# 如何避免MSTDC
我想在两台SQL Server 2008 Express Edition之间同步数据。我希望避免将SQL查询升级到MS DTC服务(MS DTC服务未运行)。对于同步,我使用不带事务的存储过程 我有更多的存储过程。从链接服务器下载数据,然后将其存储到本地数据库的过程运行良好 我正在使用存储过程将数据上载到链接服务器。在存储过程中,我没有使用任何事务 当我从SQLManagementStudio运行存储过程时,数据被正确地上传到服务器。但是当我从.NET4.0C代码调用这个过程时,它以错误告终 8501-服务器“compName\SQLEXPRESS2008”上的MSDTC不可用 应用程序代码中未使用任何事务。有时甚至从代码上传数据。我不知道什么时候需要MSDTC,什么时候不需要 没有使用事务时为什么需要MSDTC? EDIT1: 我没有什么进步。此代码用于调用存储过程。第一次调用该过程时,数据被正确地上载到服务器。下一次它以异常8501结束C# 如何避免MSTDC,c#,tsql,stored-procedures,msdtc,sql-server-2008-express,C#,Tsql,Stored Procedures,Msdtc,Sql Server 2008 Express,我想在两台SQL Server 2008 Express Edition之间同步数据。我希望避免将SQL查询升级到MS DTC服务(MS DTC服务未运行)。对于同步,我使用不带事务的存储过程 我有更多的存储过程。从链接服务器下载数据,然后将其存储到本地数据库的过程运行良好 我正在使用存储过程将数据上载到链接服务器。在存储过程中,我没有使用任何事务 当我从SQLManagementStudio运行存储过程时,数据被正确地上传到服务器。但是当我从.NET4.0C代码调用这个过程时,它以错误告终 8
SqlCommand sqlCmd = new SqlCommand("spUploadUnsendStockDocument");
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@pDebug", false);
sqlCmd.Parameters.AddWithValue("@boxId", boxId);
// Return value as parameter
SqlParameter returnValue = new SqlParameter("returnVal", SqlDbType.Int);
returnValue.Direction = ParameterDirection.ReturnValue;
sqlCmd.Parameters.Add(returnValue);
try
{
using (SqlConnection conn = new SqlConnection(dbConnection.ConnectionString))
{
conn.Open();
sqlCmd.Connection = conn;
sqlCmd.ExecuteScalar();
sqlCmd.Dispose();
conn.Close();
}
if (Convert.ToInt16(returnValue.Value) == 1)
LogError("error while sending");
return Convert.ToInt16(returnValue.Value) == 0;
}
catch (Exception ex)
{
Log(ex);
return false;
}
为什么你要自己管理同步 为什么不使用SQL SERVER 2008 Express内置的复制功能
这将允许您在数据库之间推拉以保持它们的同步 我需要在2台SQL Server 2008 Express Edition之间进行复制。我认为我不能在两台Express Edition服务器之间使用内置复制。直接从我发送给您的链接。。。Microsoft SQL Server 2008 Express(SQL Server Express)可以作为所有类型复制的订阅服务器,为向使用SQL Server Express的客户端应用程序分发数据提供了一种方便的方法。当在复制拓扑中使用SQLServer Express时,请考虑以下内容:谢谢您的回答,但根据。无法使用复制功能。两个数据库中的表结构略有不同。