Sql server 2005 - changer le owner de tous les schemas

Contenu du snippet

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]

A voir également

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.