Jugada cerda del dia en SQL server

  • Iniciador del tema Iniciador del tema rabo
  • Fecha de inicio Fecha de inicio
R

rabo

Guest
Al loro con la jugada mas cerda que hecho en mi vida con SQL server , ha sido hoy hace escasos minutos
Primero meto esto en el analizador de consultas para la db me devuelva lo que hay que ejecutar en un bat

DECLARE @BACKUPDIR varchar(100)
SET @BACKUPDIR = 'c:\copia\'

SELECT
'osql -E -d master -Q "BACKUP DATABASE '
+ QUOTENAME(CATALOG_NAME)
+ ' TO DISK = N'''+@BACKUPDIR+''
+ CATALOG_NAME
+ '.bak'' WITH INIT, NOUNLOAD, NAME = N'''
+ CATALOG_NAME
+ 'backup'', NOSKIP , STATS = 10, NOFORMAT"'
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE CATALOG_NAME NOT IN ('master','tempdb','msdb','model','Northwind','pubs')

Esto devuelve:
osql -E -d master -Q "BACKUP DATABASE [ABANICOSRASER_COM] TO DISK = N'c:\copia\ABANICOSRASER_COM.bak' WITH INIT, NOUNLOAD, NAME = N'ABANICOSRASER_COMbackup', NOSKIP , STATS = 10, NOFORMAT"
De cada una de las BDs
Postiormente se hace un copy paste de todas las filas devueltas en un .bat y se ejecuta, con lo que se obtiene .bak de todas las bbdds en el c:\copias.
Como se restaura esto ... pues puesto a hacer el cerdo con otro bat , que pego acontinuacion.
@ECHO OFF
SET DBDIRECTORY=C:\Program Files\Microsoft SQL Server\MSSQL\Data
SET BACKUPDIR=C:\copia\

PUSHD %BACKUPDIR%
FOR %%A in (*.bak) do CALL :Sub %%A
POPD

TITLE Restaurando Bases de datos
ECHO Se supone que esta restaurado
PAUSE

GOTO:EOF

:Sub
set DBNAME=%~n1

TITLE Restaurando %DBNAME%
ECHO Restaurando %DBNAME%

osql -E -d master -Q "alter database %DBNAME% set single_user with rollback immediate"

osql -E -d master -Q "restore database %DBNAME% from disk='%~dp0\%DBNAME%.bak' WITH MOVE '%DBNAME%_Data' TO '%DBDIRECTORY%\%DBNAME%_Data.MDF', MOVE '%DBNAME%_Log' TO '%DBDIRECTORY%\%DBNAME%_Log.LDF'"

::osql -E -d %DBNAME% -Q "sp_grantdbaccess '%COMPUTERNAME%\ASPNET'"
::osql -E -d %DBNAME% -Q "sp_addrolemember 'db_owner', '%COMPUTERNAME%\ASPNET'"

osql -E -d master -Q "alter database %DBNAME% set multi_user"

GOTO:EOF


Jajaja a ver quien tiene cojones a superar esta cerdada.
 
rabo rebuznó:
SET DBDIRECTORY=C:\Program Files\Microsoft SQL Server\MSSQL\Data
SET BACKUPDIR=C:\copia\

Tux.png


mysql.gif
 
Oh cielos, has instalado las BBDD en la misma unidad del SO!

San Bill Gates te condene con una unidad C llena ;-)
 
Joder, yo tb. he trabajado con SQL Server y no me he enterado un pimiento de lo que has puesto ahí.

Si no cuentas chistes de Batman no me entero de nada... :?
 
Yo es que con lo de cerdada pensaba que se te habría caido la comida en el servidor del trabajo o algo así.
 
Greepeexash rebuznó:
croatia charter yachts. croatia cruise.yacht charter pula

Con tu puta madre, hijodeputa. Vete a subir hilos a tu casa, ahora mismo le voy a decir a tu madre que te quite el router para que no puedas joder la internete.

¿Dónde están los moderadores de esta mierda de subforo? Dadme botones!!! Abrasaré con fuego purificador este antro.
 
Vaya que pronto se banea aqui no?


osql -E -d master -Q "alter database %DBNAME% set multi_user"

Tenías que haberte declarado una variable autonumérica para controlar el nombre de la base de datos cada vez que ejecutas el DTS
 
Atrás
Arriba Pie