El mismo Script para varias BDs

30/07/2009 - 21:15 por MSNEWS | Informe spam
Buen dia a todos !!

Hace unos días expuse la siguiente pregunta y me respondieron que buscara en
la web pero he buscado y no veo una solución acertada. Les agradezco si es
posible con un caso en especial:

Debo correr un script para unas 80 bases de datos que tengo en SQLServer.
Les agradezco si me ayudan con la forma de poder correr el mismo Script para
todas las bases de datos al mismo tiempo si tener que ir una a una
ejecutándolo.

Gracias

Luis

Preguntas similare

Leer las respuestas

#1 MEVB
30/07/2009 - 21:37 | Informe spam
Recorrer las base de datos implica hacer un ciclo. Esto lo haces con:
WHILE condicion-verdadera
BEGIN
END

Para cambiar a otra base de datos debes usar:
USE nombre-base-datos
GO

Puedes crear una tabla temporal para grabar alli los nombres de las bases de
datos donde vas a procesar el script
CREATE TABLE #basesaprocesar()
y luego
INSERT INTO #basesaprocesar ()

Y luego haces uso de esos tres tips en conjunto.

Saludos
MV


"MSNEWS" <luism0@(arroba)yahoo.es> escribió en el mensaje
news:
Buen dia a todos !!

Hace unos días expuse la siguiente pregunta y me respondieron que buscara
en la web pero he buscado y no veo una solución acertada. Les agradezco si
es posible con un caso en especial:

Debo correr un script para unas 80 bases de datos que tengo en SQLServer.
Les agradezco si me ayudan con la forma de poder correr el mismo Script
para
todas las bases de datos al mismo tiempo si tener que ir una a una
ejecutándolo.

Gracias

Luis

Respuesta Responder a este mensaje
#2 Adriana R
30/07/2009 - 22:01 | Informe spam
Si estan el mismo servidor a lo mejor te sirve

select 'use '+name +'
create procedure [Tu script de proceduere]'
from sysdatabases
where name not in ('master','msdb','model','tempdb')

El resultado lo pegas en el query analizer y lo puedes ejecutar todo a su vez

Saludos
Respuesta Responder a este mensaje
#3 MSNEWS
30/07/2009 - 23:01 | Informe spam
Gracias por tus sugerencias. Acá el inconveniente es que encuentro que los
scripts son archivos planos (ejemplo: miscript.sql, etc.) con muchas
instrucciones.Entonces pregunto si es posible, a un procedimiento darle el
nombre del archivo para que lo abra y lo ejecute o de lo contrario, tendré
que copiar todo ese contenido en un nuevo query y ejectuarlo, tratando de
usar un loop para todas las BDs.

Gracias !

Luis

"MEVB" <m.a.n.u.e.l.[AT].a.p.u.r.o.s...c.o.m> escribió en el mensaje
news:%
Recorrer las base de datos implica hacer un ciclo. Esto lo haces con:
WHILE condicion-verdadera
BEGIN
END

Para cambiar a otra base de datos debes usar:
USE nombre-base-datos
GO

Puedes crear una tabla temporal para grabar alli los nombres de las bases
de datos donde vas a procesar el script
CREATE TABLE #basesaprocesar()
y luego
INSERT INTO #basesaprocesar ()

Y luego haces uso de esos tres tips en conjunto.

Saludos
MV


"MSNEWS" <luism0@(arroba)yahoo.es> escribió en el mensaje
news:
Buen dia a todos !!

Hace unos días expuse la siguiente pregunta y me respondieron que buscara
en la web pero he buscado y no veo una solución acertada. Les agradezco
si es posible con un caso en especial:

Debo correr un script para unas 80 bases de datos que tengo en SQLServer.
Les agradezco si me ayudan con la forma de poder correr el mismo Script
para
todas las bases de datos al mismo tiempo si tener que ir una a una
ejecutándolo.

Gracias

Luis





Respuesta Responder a este mensaje
#4 Emilio Boucau
30/07/2009 - 23:25 | Informe spam
Hola,

Creo que si una cosa asi:

EXEC sp_msforeachdb @command1="use ? dbcc updateusage(0)"

(donde el dbcc updateusage(0) es el codigo a ejecutar, en este caso) o las
sugerencias que te han dado antes no sirven a tu problema, deberas recurrir
a un script dinamico de T-SQL o a un script de PowerShell (si es SQL Server
2008) o usar una herramienta como esta:
http://www.xsqlsoftware.com/Product...cutor.aspx

Saludos !!

Emilio Boucau
Buenos Aires - Argentina

"MSNEWS" <luism0@(arroba)yahoo.es> wrote in message
news:
Buen dia a todos !!

Hace unos días expuse la siguiente pregunta y me respondieron que buscara
en la web pero he buscado y no veo una solución acertada. Les agradezco si
es posible con un caso en especial:

Debo correr un script para unas 80 bases de datos que tengo en SQLServer.
Les agradezco si me ayudan con la forma de poder correr el mismo Script
para
todas las bases de datos al mismo tiempo si tener que ir una a una
ejecutándolo.

Gracias

Luis

Respuesta Responder a este mensaje
#5 MSNEWS
30/07/2009 - 23:35 | Informe spam
Emilio ! Gracias ! he descargado esta solución free, me parece muy
interesante para lo que necesito. Voy a estudiarla un poco más y probarla.
Luego contaré mis resultados.

Gracias

Luis

"Emilio Boucau" escribió en el mensaje
news:
Hola,

Creo que si una cosa asi:

EXEC sp_msforeachdb @command1="use ? dbcc updateusage(0)"

(donde el dbcc updateusage(0) es el codigo a ejecutar, en este caso) o las
sugerencias que te han dado antes no sirven a tu problema, deberas
recurrir a un script dinamico de T-SQL o a un script de PowerShell (si es
SQL Server 2008) o usar una herramienta como esta:
http://www.xsqlsoftware.com/Product...cutor.aspx

Saludos !!

Emilio Boucau
Buenos Aires - Argentina

"MSNEWS" <luism0@(arroba)yahoo.es> wrote in message
news:
Buen dia a todos !!

Hace unos días expuse la siguiente pregunta y me respondieron que buscara
en la web pero he buscado y no veo una solución acertada. Les agradezco
si es posible con un caso en especial:

Debo correr un script para unas 80 bases de datos que tengo en SQLServer.
Les agradezco si me ayudan con la forma de poder correr el mismo Script
para
todas las bases de datos al mismo tiempo si tener que ir una a una
ejecutándolo.

Gracias

Luis




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida