/ / Ejecución de comandos síncronos entre dos servidores sql - sql, sql-server, sql-server-2008

Ejecutar comandos sincrónicos entre dos servidores sql: sql, sql-server, sql-server-2008

Estoy ejecutando un procedimiento almacenado en server1 desde mi aplicación. El procedimiento almacenado hace un montón de cosas y llena una tabla en server2 con el resultado del procedimiento.

Estoy usando el servidor vinculado para lograr esto.

Cuando el procedimiento almacenado finaliza, la aplicación continúa y trata de manipular el resultado del procedimiento almacenado.

Mi problema es que los resultados del procedimiento almacenado todavía no se han insertado completamente en las tablas, por lo que la manipulación de las tablas falla.

Así que mi pregunta es. ¿Es posible garantizar que la inserción en el servidor vinculado se realice de forma síncrona? Me gustaría que el procedimiento almacenado no se devuelva hasta que las tablas en el servidor vinculado estén listas.

Respuestas

0 para la respuesta № 1

Puede utilizar un parámetro de salida de la primeraprocedimiento. Cuando se cree la tabla en el segundo servidor, el valor del parámetro de salida volverá a su aplicación e indica que la operación está lista.

Si las cosas son difíciles, entonces puede intentar configurar un nivel de aislamiento diferente de su procedimiento de almacenamiento:

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


0 para la respuesta № 2

Encontré la razón de este extraño comportamiento. Se agregó una línea de código en mi procedimiento almacenado durante la depuración que hizo una selección en una tabla de memoria temporal antes de que los datos de la misma tabla se escribieran en el servidor vinculado.

Cuando se ejecutó la instrucción de selección, el controlfue devuelto a mi aplicación y al mismo tiempo el procedimiento almacenado continuó ejecutándose. Supongo que el procedimiento almacenado se ejecutaba sincrónicamente desde el principio.