2012-09-07 66 views
0

我在我的应用程序上运行server1上的存储过程。存储过程会执行一堆内容,并使用过程的结果在server2上填充表。在两台SQL服务器之间运行同步命令

我正在使用链接服务器来完成此操作。

存储过程完成后,应用程序继续运行,并尝试对存储过程的结果进行一些操作。

我的问题是存储过程的结果尚未完全插入到表中,因此表的操作失败。

所以我的问题是。是否可以确保在链接服务器上插入到同步?我希望存储过程不会返回,直到链接服务器上的表实际完成。

+0

HOw将sproc将控件返回给应用程序,直到它完成插入操作? – AnandPhadke

+0

我的存储过程中似乎有一个错误,程序返回的时间太早。我将在自己的回复中添加详细信息。 –

回答

0

我发现这种奇怪的行为的原因。在存储过程中,在调试过程中添加了一行代码,在同一个表中的数据写入链接服务器之前,在临时mem表上执行了select操作。

当select语句运行时,控制权被回送给我的应用程序,同时存储过程继续运行。我猜存储过程从一开始就同步运行。

0

您可以使用第一个过程的输出参数。当在第二台服务器上创建表时,输出参数值将返回到您的应用程序并指示操作已准备就绪。

如果事情是很难那么这个你可以尝试设置你的存储过程的一个不同的隔离级别:

http://msdn.microsoft.com/en-us/library/ms173763.aspx

相关问题