Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

El mismo Script para varias BDs

1,306 views
Skip to first unread message

MSNEWS

unread,
Jul 30, 2009, 3:15:46 PM7/30/09
to
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


MEVB

unread,
Jul 30, 2009, 3:37:55 PM7/30/09
to
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:ehVGAqUE...@TK2MSFTNGP03.phx.gbl...

Adriana R

unread,
Jul 30, 2009, 4:01:01 PM7/30/09
to
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

MSNEWS

unread,
Jul 30, 2009, 5:01:01 PM7/30/09
to
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:%23Vn2p0U...@TK2MSFTNGP04.phx.gbl...

Emilio Boucau

unread,
Jul 30, 2009, 5:25:56 PM7/30/09
to
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/Sql_Server_Script_Executor.aspx

Saludos !!
---
Emilio Boucau
Buenos Aires - Argentina

"MSNEWS" <luism0@(arroba)yahoo.es> wrote in message
news:ehVGAqUE...@TK2MSFTNGP03.phx.gbl...

MSNEWS

unread,
Jul 30, 2009, 5:35:16 PM7/30/09
to
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" <bou...@hotmail.com> escribi� en el mensaje
news:C3F2972F-E764-417D...@microsoft.com...

MSNEWS

unread,
Jul 30, 2009, 7:09:07 PM7/30/09
to
De nuevo gracias ! la soluci�n me funciona pues puedo ejecutar unos 35
archivos de SQL scripts que tengo en distintas carpetas, en el orden que yo
indique. Es decir, no tengo que dar clic uno a uno para que se ejecute en
una BD y luego dar clic uno a uno para las otras 80 BDs restantes.

Gracias !

Luis

"MSNEWS" <luism0@(arroba)yahoo.es> escribi� en el mensaje
news:%232JO93V...@TK2MSFTNGP04.phx.gbl...

Carlos Sacristan

unread,
Jul 31, 2009, 3:16:53 AM7/31/09
to
En SQLServerCentral acaban de publicar un art�culo para justamente lo que
necesitas: http://www.sqlservercentral.com/articles/Automation/67547/

�chale un vistazo tambi�n si quieres...

--
-----------------------------
"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es f�cil, si ambas est�n congeladas."
Edward V. Berard, ingeniero inform�tico

http://blogs.solidq.com/es/elrincondeldba


"MSNEWS" <luism0@(arroba)yahoo.es> wrote in message

news:uXU4ZsWE...@TK2MSFTNGP05.phx.gbl...
> De nuevo gracias ! la soluci�n me funciona pues puedo ejecutar unos 35

> archivos de SQL scripts que tengo en distintas carpetas, en el orden que
> yo indique. Es decir, no tengo que dar clic uno a uno para que se ejecute
> en una BD y luego dar clic uno a uno para las otras 80 BDs restantes.
>
> Gracias !
>
> Luis
>

> "MSNEWS" <luism0@(arroba)yahoo.es> escribi� en el mensaje
> news:%232JO93V...@TK2MSFTNGP04.phx.gbl...
>> 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" <bou...@hotmail.com> escribi� en el mensaje

>> news:C3F2972F-E764-417D...@microsoft.com...
>>> 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/Sql_Server_Script_Executor.aspx
>>>
>>> Saludos !!
>>> ---
>>> Emilio Boucau
>>> Buenos Aires - Argentina
>>>
>>> "MSNEWS" <luism0@(arroba)yahoo.es> wrote in message
>>> news:ehVGAqUE...@TK2MSFTNGP03.phx.gbl...
>>>> 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
>>>>
>>>
>>
>>
>
>

Emilio Boucau

unread,
Jul 31, 2009, 10:03:15 AM7/31/09
to
Luis,

Me alegro que hayas podido solucionar tu tema !

Saludos !


---
Emilio Boucau
Buenos Aires - Argentina

"MSNEWS" <luism0@(arroba)yahoo.es> wrote in message

news:uXU4ZsWE...@TK2MSFTNGP05.phx.gbl...

MSNEWS

unread,
Jul 31, 2009, 11:21:26 AM7/31/09
to
Carlos gracias por tu sugerencia. Muy interesante e ilustrativo el
procedimiento del sito web que indicas !. Tiene la ventaja de definir sobre
cu�les bases de datos deseas correr simult�neamente varios sql scripts que
han desarrollado los creadores del software que administra las bases de
datos.

De nuevo, gracias

Luis

"Carlos Sacristan" <nom...@nomail.com> escribi� en el mensaje
news:OVAii7aE...@TK2MSFTNGP05.phx.gbl...
> En SQLServerCentral acaban de publicar un art�culo para justamente lo que
> necesitas: http://www.sqlservercentral.com/articles/Automation/67547/
>
> �chale un vistazo tambi�n si quieres...


>
> --
> -----------------------------
> "Caminar sobre el agua y desarrollar software a partir de unas

> especificaciones es f�cil, si ambas est�n congeladas."
> Edward V. Berard, ingeniero inform�tico


>
> http://blogs.solidq.com/es/elrincondeldba
>
>
> "MSNEWS" <luism0@(arroba)yahoo.es> wrote in message
> news:uXU4ZsWE...@TK2MSFTNGP05.phx.gbl...

>> De nuevo gracias ! la soluci�n me funciona pues puedo ejecutar unos 35

>> archivos de SQL scripts que tengo en distintas carpetas, en el orden que
>> yo indique. Es decir, no tengo que dar clic uno a uno para que se ejecute
>> en una BD y luego dar clic uno a uno para las otras 80 BDs restantes.
>>
>> Gracias !
>>
>> Luis
>>

>> "MSNEWS" <luism0@(arroba)yahoo.es> escribi� en el mensaje
>> news:%232JO93V...@TK2MSFTNGP04.phx.gbl...


>>> 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" <bou...@hotmail.com> escribi� en el mensaje

>>> news:C3F2972F-E764-417D...@microsoft.com...
>>>> 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/Sql_Server_Script_Executor.aspx
>>>>
>>>> Saludos !!
>>>> ---
>>>> Emilio Boucau
>>>> Buenos Aires - Argentina
>>>>
>>>> "MSNEWS" <luism0@(arroba)yahoo.es> wrote in message
>>>> news:ehVGAqUE...@TK2MSFTNGP03.phx.gbl...
>>>>> 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
>>>>>
>>>>
>>>
>>>
>>
>>
>


0 new messages