05/05/2004 - 11:38 por Miguel Puime | Informe spam
Hola a todos:
Os cuento lo que quiero hacer:
Tengo 2 Bases de Datos: BD1 y BD2 con tablas distintas en cada una.
Puedo hacer un procedimiento almacenado en DB1 que lea una tabla de DB2?????

Ejem: en BD1
CREATE PROCEDURE spNPacientes
SELECT count(*) FROM DB2.Tabla

Gracias de antemando.
Miguel Puime.
 

Leer las respuestas

#1 Adrian D. Garcia
05/05/2004 - 12:01 | Informe spam
Si, pero la sintaxis que estas utilizando no es la correcta.
Para referenciar una tabla de otra base de datos debes utilizar la siguiente
sintaxis para identificar la tabla

<base de datos>..<tabla>
<base de datos>.dbo.<tabla>
<base de datos>.<login>.tabla

Las 2 primeras opciones son similares, leen la tabla con permisos del dueño
del objeto. Esto funciona siempre y cuando el login con que fue creado el
procedimiento almacenado tenga permisos de dbo ([d]ata [b]ase [o]wner -
dueño de la base de datos) sobre la tabla que quieras leer. Si no es asi
entonces debes utilizar la tercera forma en donde defines el login, con los
permisos suficientes como para leer la tabla.


Saludos

Adrian D. Garcia
NDSoft
MCSD
"Miguel Puime" escribió en el mensaje
news:
Hola a todos:
Os cuento lo que quiero hacer:
Tengo 2 Bases de Datos: BD1 y BD2 con tablas distintas en cada una.
Puedo hacer un procedimiento almacenado en DB1 que lea una tabla de


DB2?????

Ejem: en BD1
CREATE PROCEDURE spNPacientes
SELECT count(*) FROM DB2.Tabla

Gracias de antemando.
Miguel Puime.


Preguntas similares