Dans le cas de migration de SQL Server 2000 vers SQL Server 2005, on peut se retrouver avec un grand nombre de schémas qui sont associés à de nombreux comptes.
En cas de nettoyage de ces users, on doit donc réattribuer les schémas à un utilisateur (tel que DBO).
Ce script permet de modifier le Owner de tous les schémas.
Source / Exemple :
USE [MaBase]
GO
DECLARE @NewOwner AS VARCHAR(50)
DECLARE @SQLCMD AS VARCHAR(MAX)
SET @NewOwner = 'NouveauOwner'
DECLARE CURSORLISTCHEMA CURSOR FOR SELECT 'ALTER AUTHORIZATION ON SCHEMA::['+ SCHEMA_NAME +'] TO ['+ @NewOwner +']'
FROM INFORMATION_SCHEMA.SCHEMATA WHERE NOT (SCHEMA_OWNER LIKE 'db_%'
OR SCHEMA_OWNER = 'INFORMATION_SCHEMA'
OR SCHEMA_OWNER = 'guest' OR SCHEMA_OWNER = 'sys')
AND NOT (SCHEMA_OWNER = @NewOwner)
OPEN CURSORLISTCHEMA
FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
WHILE (@@fetch_status >= 0)
BEGIN
PRINT @SQLCMD
EXECUTE(@SQLCMD)
FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
END
CLOSE CURSORLISTCHEMA
DEALLOCATE CURSORLISTCHEMA
Conclusion :
Bon coding
Romelard Fabrice [MVP]
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.