Detacher une base SQL 2000 et 2005 et gestion utilisateurs
- Par: serveurblog
- Le: 13.11.2009 09:34:57
- Dans: Sql Serveur
- Commentaires: 0
La premiere chose a faire est de connaitre le noms des fichiers bases MPF et journal LDF
- SELECT filename FROM sysfiles ( a remplacer par SELECT physical_name FROM sys.database_files sour SqlServeur 2005 )
Détacher la base :
- Conservation des index Plein Texte : EXEC sp_detach_db @dbname = N'AdventureWorks', @keepfulltextindexfile=N'true'
- Conservation des index Plein Texte : EXEC sp_detach_db @dbname = N'AdventureWorks'
Attacher la base :
- CREATE DATABASE MaBase ON (FILENAME = 'c:\monchemin\monfichier.mdf') FOR ATTACH
SI cette operation est effectuée sur un nouveau serveur suite a un export par exemple, il faudra aussi copier les utilisateurs / logins
Crééer une procédure stockée ayant pour nom sp_help_revlogin qui génère un script de duplication des comptes de connexion au serveur.
Sp_help_revlogin pour Sql 2000
Sp_help_revlogin pour Sql Serveur 2005
Sauvegarder par script toutes les bases de donnees d un serveur SQL 2000
- Par: serveurblog
- Le: 16.06.2009 12:27:24
- Dans: Sql Serveur
le code est on ne peut plus simple :
- Creation d'un fichier backup.bat avec :
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe " -E --i C:\sauvegarde.sql
- Et dans sauvegarde.sql :
DECLARE @OutputPath as varchar(200) DECLARE @Database as varchar(200) DECLARE @SQLStr as varchar(500) -- Set this location to a directory where the SQL Server user context has -- rights to write. Don't append a '\' to the path name, as it's being -- appended below when the path is used. SET @OutputPath = 'C:\Windows\temp' -- Only get databases that do not have the following flags set: -- 32 = loading. -- 64 = pre recovery. -- 128 = recovering. -- 256 = not recovered. -- 512 = offline; set with ALTER DATABASE. -- 2048 = dbo use only; set with ALTER DATABASE RESTRICTED_USER. -- 32768 = emergency mode. DECLARE @Database_cur CURSOR SET @Database_cur = CURSOR FOR SELECT name FROM sysdatabases WHERE (status & 35808) = 0 OPEN @Database_cur FETCH NEXT FROM @Database_cur INTO @Database WHILE (@@fetch_status <> -1) BEGIN SET @SQLStr = 'BACKUP DATABASE [' + @Database + ']
TO DISK = ''' + @OutputPath + '\' + @Database + '.BAK''' PRINT @SQLStr EXEC(@SQLStr) FETCH NEXT FROM @Database_cur INTO @Database END CLOSE @Database_cur DEALLOCATE @Database_cur
Changer mot de passe SA de SQL
- Par: serveurblog
- Le: 26.05.2009 10:32:47
- Dans: Sql Serveur
Voici la procedure, tres simple :
- C:\Program Files\Microsoft SQL Server\80\Tools\Binn en ligne de commande
- sp_password null, 'nouveau_mot_de_passe', 'sa'
- go
- exit
Installation de SQL Server Analysis Services
- Par: jack
- Le: 26.03.2009 19:05:52
- Dans: Sql Serveur
Si vous utilisez l'Assistant Installation pour installer Analysis Services, vous utiliserez une série de pages pour spécifier les composants et les options. Le tableau suivant répertorie uniquement les pages de l'Assistant Installation où les options que vous sélectionnez pendant votre installation de Analysis Services :
Convertir des Nombres en Lettres
- Par: jack
- Le: 23.03.2009 20:10:23
- Dans: Sql Serveur
* CREATE FUNCTION NombreEnLettres
* (
* @nombre int
* )
* RETURNS varchar(200)
* AS
* BEGIN
* DECLARE @lettres varchar(200)
*
* DECLARE @diviseur int
*
* DECLARE @centaine int
* DECLARE @dizaine int
* DECLARE @unite int
* DECLARE @reste int
* DECLARE @courant int
* DECLARE @dix bit
* DECLARE @et bit
*
* DECLARE @ajout varchar(200)
*
* SET @lettres = ''
* SET @diviseur = 1000
* SET @dix = 0
* SET @reste = @nombre
*
* WHILE @diviseur >= 1
* BEGIN
* SELECT @courant = @reste / @diviseur
* IF @courant <> 0
* BEGIN
* SELECT @centaine = @courant / 100
* SELECT @dizaine = (@courant - @centaine * 100) / 10
* SELECT @unite = @courant - (@centaine * 100) - (@dizaine * 10)
* SELECT @ajout = ''
*
* SELECT @ajout = @ajout +
* CASE @centaine
* WHEN 1 THEN 'cent '
* WHEN 2 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'deux cent ' ELSE 'deux cent ' END
* WHEN 3 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'trois cent ' ELSE 'trois cent ' END
* WHEN 4 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'quatre cent ' ELSE 'quatre cent ' END
* WHEN 5 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'cinq cent ' ELSE 'cinq cent ' END
* WHEN 6 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'six cent ' ELSE 'six cent ' END
* WHEN 7 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'sept cent ' ELSE 'sept cent ' END
* WHEN 8 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'huit cent ' ELSE 'huit cent ' END
* WHEN 9 THEN
* CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'neuf cent ' ELSE 'neuf cent ' END
* ELSE ''
* END
Modes de récuperation de base de données
- Par: jack
- Le: 14.03.2009 17:12:15
- Dans: Sql Serveur
Mode de récupération complète : C’est le mode par défaut. Il permet une récupération totale ou partielle de la base de données, ce qui comprend la base de données en elle-même, ainsi que les informations contenues dans les journaux.
L’avantage ici c’est que vous n’avez aucune perte de donnée et vous avez la possibilité de restaurer partiellement les données en se basant sur un point temporel spécifique.
Cependant ce mode a un inconvénient majeur car l’espace de stockage requis important.
Modifier l'index d'une contrainte sans la supprimer
- Par: jack
- Le: 09.03.2009 19:59:57
- Dans: Sql Serveur
Pour modifier l’index d’une contrainte ;
Recherchez le nom de l'index qui est créée par notre contrainte (il est préférable de nommer l’index vous même)
SELECT name FROM sys.indexes
WHERE is_primary_key = 1 AND object_id = OBJECT_ID('dbo.MaTable')
Les vues systèmes utilisées existent depuis SQL Server 2005 uniquement.
Changez « is_primary_key » par « is_unique_constraint » en fonction de ce que vous souhaitez modifier.
Ecrasez cet index avec la syntaxe appropriée (syntaxe valable depuis SQL Server 2000)
-- Remplacer par le nom de l'index trouvé ci-dessus
CREATE UNIQUE NONCLUSTERED INDEX PK__dbo_MaTable__6F7AF90B ON dbo.MaTable(Id)
WITH (DROP_EXISTING = ON)
La clause UNIQUE est indispensable. Vous ne devez pas perdre de vu que vous êtes entrain de transformer l’index de celf primaire de Clustered (valeur par défaut pour une clef primaire) en NonClustered. Le DROP_EXISTING indique au moteur que ce n'est pas une création d'index en tant que tel mais que l'on souhaite remplacer cet index.
Vous aurez ainsi crée votre nouvel index.
Crer son modle de rapports SSRS
- Par: jack
- Le: 27.02.2009 17:30:38
- Dans: Sql Serveur
Le serveur de rapport fourni par Microsoft avec SQL Server 2005 permet de présenter des données parfois complexes à des utilisateurs suivant un modèle défini.
Créer son style de rapport
Nous verrons comment créer un modèle de rapport qui sera la base lors de la création.
Présentation
Les rapports sont créés à partir d'un fichier XML à l'extension RDL (Report Definition Language). Le serveur de rapport utilise ce fichier RDL comme "fond de page" qu'il complète avec les données.
Lors de la création de ce fichier RDL, il est souvent plus rapide d'utiliser l'assistant de création qui utilise de son côté un modèle de base.
Nous verrons donc dans cet article comment modifier ce modèle de base et l'utiliser.
Fichier Modèle RDL
Le modèle de base utilisé par l'assistant est un fichier RDL situé dans le répertoire :
* C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject\Report.rdl
Nous allons donc prendre ce fichier de base pour lui ajouter un logo de base en entête et "disclaimer" en pied de page.
Pour ceci, créons un projet Reporting Services vide

Ce projet est donc vide et contient deux "répertoires" dans l'explorateur de solution.

Nous allons donc ajouter le fichier RDL modèle que nous avons défini plus haut dans ce projet. Pour ceci, il faut ajouter un fichier existant dans ce projet.

Comment changer le mode d’authentification sur SQL Server
- Par: jack
- Le: 17.02.2009 19:54:25
- Dans: Sql Serveur
Il faut aller dans la base de registre sur la machine sur laquelle est installé le serveur et rechercher la clef suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\
Où x est un nombre qui correspond à l'instance du serveur. Dans la clef ci-dessous :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\
Vous obtiendrez le numéro qui correspond au nom de l'instance. Le nom de l'instance par défaut est MSSQLSERVER.
La valeur à modifier est LoginMode ses valeurs possible sont :
- Windows uniquement
- Mixte (Windows + SQL Server)
Dans certaines versions d'avant SQL Server 2005 il est possible de trouver cette valeur dans la clef de base de registre suivante :
HKEY_LOCAL_MACHINE \Software\Microsoft\MSSqlserver\MSSqlServer\
N’oublier pas de redémarrer les services (Serveur + Agent) après ces modifications.
Changer le propriétaire
- Par: jack
- Le: 16.02.2009 18:22:33
- Dans: Sql Serveur
Dans SQL 2000 et 2005 il est difficile voir impossible de changer le propriétaire d'un objet tel une base de données ou une table à l'aide des outils offert dans le SQL Enterprise Manager! Voici une astuce qui vous aidera désormais à résoudre ce type poblème.
Commencez tout d'abord par créer un nouveau script sql
Saisissez la commande suivante :
EXEC sp_changeobjectowner 'PROPRIÉTAIRE.VOTRE_OBJET', 'NOUVEAU_PROPRIÉTAIRE'
Exécuté votre script SQL
Normalement, le propriétaire de votre objet devrait être changé. Si tel n'est pas le cas, rafraichissez vos tables ou votre base de données entière.
{mos_fb_discuss:no_discuss}