locked
a que se le llama ejecutar un procedimiento almacenado remoto??? RRS feed

  • Pregunta

  • Hola a todos, estoy leyendo un libro de sql server, y en una nota dice lo siguiente: Las llamadas a procedimientos almacenados remotos no se consideran parte de un transacción, si ejecuta una llamada a un procedimiento almacenado remoto después de begin transaction y despues usa rollback transaction, los cambios realizados por la llamada en los datos remotos no se revierten.

    Quisiera que me ayuden entender bien este concepto ya que puedo entorpeser la migracion de sistemas con Oracle que estoy pensando en migrar a SQL Server.

    Bueno en primera, a que se considera SP Remoto? a un SP que reside en otro esquema? otra BD? otra Instancia? otro server? ejecutado por un usuario diferente al que lo creó?

    Bueno, tal vez esta información adicional del contexto en el que me encuentro les ayude a brindarme mejor apoyo, tengo N Bases de datos, cada base de datos tiene N esquemas, dentro de cada esquema hay N SP's, eso es a nivel BD, ahora bien tengo un usuario GENÉRICO con el cual se conecta la aplicación (desarrollada en .net) y tiene privilegios de ejecutar todos los SP de todos lo esquemas de todas las BD, aquí viene el dilema: las llamdas a SP muchas veces se los hace en lote, o sea la aplicacion ejecuta algo como BD1.esquemaX.procedureY, luego ejecuta BD2,esquemaY.procedure5 y finalmente BD5.esquema8.procedureXYZ, y finalmente si todos los SP se ejecutaron correctamente se hace commit a todo, o caso contrario rollback a todo, y bueno ese concepto que describí a un comienzo ya me mareo la perdiz y no se si lo que tengo en mente es posible, les agradeceria mucho que me ayuden a orientarme al respecto.

    Gracias de antemano, saludos cordiales a todos.


    Roy Sillerico

    lunes, 17 de julio de 2017 19:34

Respuestas

  • Se entiende por procedimiento remoto el que está en un servidor enlazado, lo cual normalmente implica otra instancia y posiblemente otro servidor. Son los que se invocan con un nombre de 4 partes:

    EXEC enlace.base.esquema.procedimiento

    Tal como describes tu situación, todos están en la misma instancia (nombres de 3 partes), por lo que no son remotos y participan correctamente en la transacción.

    lunes, 17 de julio de 2017 20:05