Sql server 2000 - changer le owner des objets d'une base de données

Contenu du snippet

Lors de certains développement, il peut arriver que l'on ne fasse pas attention au nom du créateur de l'objet dans la base de données.
Cela peut aussi se présenter lors de restauration de base de données.

Il faut alors changer le propriétaire de tous les objets, voilà donc une procédure stockée permettant de faire ceci.
Vous n'avez dans cette procédure besoin que de définir le nouveau nom du nouvel owner.

Source / Exemple :


CREATE PROCEDURE SP_System_ChangeObjetOwner
AS

DECLARE @NomNouveauUser VARCHAR(255)
SET @NomNouveauUser = 'dbo'

DECLARE @LeNomObjet 	VARCHAR(255)
DECLARE @LeNomUser 	VARCHAR(255)
DECLARE LeCurseur 	CURSOR FOR

SELECT 
	s.name AS LeNomObjet, 
	u.name AS LeNomUser
FROM  
	sysobjects s 
INNER JOIN 	sysusers u 
	ON s.uid = u.uid
WHERE 
	(s.type = 'p' OR s.type = 'v' OR s.type = 'U') 
AND 
	(NOT (s.category = 2)) 
AND 
	(NOT (s.category = 2563))
AND
	(NOT(u.name = @NomNouveauUser))

OPEN LeCurseur

FETCH NEXT FROM LeCurseur INTO @LeNomObjet, @LeNomUser
WHILE @@fetch_status = 0
BEGIN
	EXEC ('sp_changeobjectowner ['+ @LeNomUser +'.' + @LeNomObjet + '],'+ @NomNouveauUser)
	FETCH NEXT FROM LeCurseur INTO @LeNomObjet, @LeNomUser
END

CLOSE LeCurseur
DEALLOCATE LeCurseur

GO

Conclusion :


Bon coding

Romelard Fabrice.

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.