OVH Cloud OVH Cloud

probleme scripting sqlserver

1 réponse
Avatar
SugarKane
Bonjour je voudrai faire un script sqlserver 2000 qui fait ca :
"SELECT name FROM sysdatabases WHERE name NOT IN
('master','model','msdb','tempdb','pubs')"
donc qui me recupere le nom de mes bases et pour toutes les lignes rendues
(toutes les bases) je veux faire un :
BACKUP LOG $base WITH NO_LOG
DBCC SHRINKDATABASE ($base)

ou $base est la liste renvoyé par ma requete..
comment faire? commen attribuer avec sqlserver une variable au resultat
d'une requete? est-ce que je m'y prend mal?
merci
a la limite si vous avez un endroit ou y'a de la doc...
merci d'avance! :)
Sugarkane

1 réponse

Avatar
Med Bouchenafa [MVP]
Utilise un curseur, un peu comme ceci :

SET NOCOUNT ON
go
DECLARE @currenDB sysname

DECLARE dbList CURSOR
FOR SELECT CATALOG_NAME FROM INFORMATION_SCHEMA.SCHEMATA
WHERE CATALOG_NAME NOT IN ('master','model','msdb','tempdb','pubs')

OPEN dbList

FETCH NEXT FROM dbList INTO @currenDB
WHILE @@FETCH_STATUS = 0
BEGIN
BACKUP LOG @currenDB WITH NO_LOG
DBCC SHRINKDATABASE (@currenDB)

FETCH NEXT FROM dbList INTO @currenDB
END

CLOSE dbList
DEALLOCATE dbList
go
SET NOCOUNT off

--
Salutations
Med Bouchenafa
TETRASET
75015 Paris


"SugarKane" a écrit dans le message de news:
bp2v7i$cpd$
Bonjour je voudrai faire un script sqlserver 2000 qui fait ca :
"SELECT name FROM sysdatabases WHERE name NOT IN
('master','model','msdb','tempdb','pubs')"
donc qui me recupere le nom de mes bases et pour toutes les lignes rendues
(toutes les bases) je veux faire un :
BACKUP LOG $base WITH NO_LOG
DBCC SHRINKDATABASE ($base)

ou $base est la liste renvoyé par ma requete..
comment faire? commen attribuer avec sqlserver une variable au resultat
d'une requete? est-ce que je m'y prend mal?
merci
a la limite si vous avez un endroit ou y'a de la doc...
merci d'avance! :)
Sugarkane