Ejecutar un mismo Stored Procedure para diferentes Bases de Datos

25/01/2004 - 10:06 por Osvaldo | Informe spam
Hola. En la empresa tenemos una base de datos por cada Cliente y una base de
datos común para todos ellos.
En las bases de datos de los clientes solo deberia haber tablas, ya que mi
idea es que todo lo que es código este ubicado en la BD compartida o Comun.
Al momento tenemos un mismo SP repetido en cada una de las bases clientes.
Pero no me gusta nada esto porque implica mantener muchas bases de datos y
asegurarse que funcionen todas igual.

Que alternativa me dan a esto:

CREATE PROCEDURE spComun (@BaseDeDatos as nvarchar)
AS

USE @BaseDeDatos

Bla Bla Bla [...]

GO

No puedo usar el Use en forma dinamica dentro de un stored procedure. O si?
Se entiende mi pregunta? Lo unico que cambia es de donde va a sacar los
datos, no la logica.

Preguntas similare

Leer las respuestas

#1 Ana Castro
25/01/2004 - 10:21 | Informe spam
Si por ejemplo tuvieras que hacer una consulta del estilo en una base de
datos llamada DBCLI:

SELECT *
FROM CLIENTES

podrías utilizar SELECT * FROM DBCLI.DBO.CLIENTES
desde cualquier otra base de datos

Si lo pones por parámetro: construye esta sentencia select en una cadena y
luego ejecútala con el comando EXEC.

"Osvaldo" escribió en el mensaje
news:
Mostrar la cita
de
Mostrar la cita
Comun.
Mostrar la cita
si?
Mostrar la cita
#2 Adrian Garcia
26/01/2004 - 00:31 | Informe spam
Tambien podria hacerse asi:

DECLARE @db VARCHAR(100)
SET @db= 'NORTHWIND'
EXEC( 'USE ' + @db +' SELECT * FROM PRODUCTS')

Saludos
Adrian D. Garcia
NDSoft

"Ana Castro" wrote in message
news:
Mostrar la cita
base
Mostrar la cita
mi
Mostrar la cita
clientes.
Mostrar la cita
y
Mostrar la cita
#3 Osvaldo
26/01/2004 - 04:15 | Informe spam
Pero dentro de un Stored Procedure no produciría error?
porque he probado de hacerlo directamente (USE DBNAME) dentro del cuerpo del
SP y me arroja error diciendo que no se puede cambiar la BD dentro de un
stored procedure. Lo usan así ustedes?

Gracias

"Adrian Garcia" escribió en el mensaje
news:
Mostrar la cita
y
Mostrar la cita
que
Mostrar la cita
datos
Mostrar la cita
O
Mostrar la cita
los
Mostrar la cita
#4 Sérgio Monteiro
26/01/2004 - 06:51 | Informe spam
Cuando uno hace como Adrian (Con Cadenas String o SQL Dinamicos), no se
prodcue el error. Pero el tema es que todas las operaciones tienes que estar
encadenadas en la misma cadena String o el comando se va a ejecutar en la
base actual...



saludos,


Sérgio Monteiro - Brasil
www.sqlpass.org
"Osvaldo" escreveu na mensagem
news:%
Mostrar la cita
del
Mostrar la cita
de
Mostrar la cita
cadena
Mostrar la cita
procedure.
Mostrar la cita
#5 Adrian Garcia
26/01/2004 - 11:39 | Informe spam
El temas es que con el EXEC estas armando por decir otro batch de
instrucciones. Por eso debes jecutar todo entre los parentesis.
Pruebalo y veraz. Si anda dentro de un stored.

Saludos
Adrian D. Garcia
NDSoft


"Osvaldo" wrote in message
news:%
Mostrar la cita
del
Mostrar la cita
de
Mostrar la cita
cadena
Mostrar la cita
procedure.
Mostrar la cita
Ads by Google
Search Busqueda sugerida