0

我正在从我的应用程序在 server1 上运行一个存储过程。存储过程做了很多事情,并用过程的结果填充 server2 上的表。

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

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

我的问题是存储过程的结果还没有完全插入到表中,所以对表的操作失败了。

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

4

2 回答 2

0

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

如果事情很困难,那么您可以尝试为您的存储过程设置不同的隔离级别:

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

于 2012-09-07T07:28:49.417 回答
0

我找到了这种奇怪行为的原因。在调试期间添加的存储过程中有一行代码在同一个表中的数据写入链接服务器之前对临时 mem 表进行了选择。

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

于 2012-09-07T08:06:45.543 回答