Sql server 2005 - changer le schema par defaut de tous les utilisateurs pour une base specifique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 404 fois - Téléchargée 21 fois

Contenu du snippet

Dans de nombreux cas, on développe des applications sans se soucier de la base de données. Ainsi il arrive que l'on souhaite remettre la situation au propre en définissant un Schéma particulier pour tous les objets.
Dans ce cas, il faut prendre en compte les comptes utilisateurs et modifier le schéma par défaut de chacun d'eux.
Ceci afin que le "SELECT * FROM MATABLE" puisse continuer à fonctionner dans l'application en question.

Voila donc un script qui permet d'effectuer ce travail. Il faut bien spécifier la base de travail en tête de ce script.

Source / Exemple :


USE [MaBasedeTravail]
GO

DECLARE @NewSchema	AS VARCHAR(50)
DECLARE @DBName		AS VARCHAR(50)
DECLARE @SQLCMD		AS VARCHAR(2000)	

SET @NewSchema = 'MonNouveauSchema'
SET @DBName = 'MaBasedeTravail'

DECLARE CURSORCHANGESCHEMA CURSOR FOR SELECT 'USE ['+ @DBName +'] ALTER USER ['+ name +'] WITH DEFAULT_SCHEMA=['+ @NewSchema +'] ' AS COMMANDSQL 
									FROM sys.sysusers WHERE issqluser = 1 AND hasdbaccess = 1
OPEN CURSORCHANGESCHEMA
FETCH NEXT FROM CURSORCHANGESCHEMA INTO @SQLCMD
WHILE (@@fetch_status >= 0) 
	BEGIN 
		PRINT 'MODIFICATION : '+ @SQLCMD
		EXECUTE(@SQLCMD)
		FETCH NEXT FROM CURSORCHANGESCHEMA INTO @SQLCMD
	END
CLOSE CURSORCHANGESCHEMA
DEALLOCATE CURSORCHANGESCHEMA

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.