Articles

Affichage des articles associés au libellé SQL Server

les différentes méthodes pour chercher les objets dans SQL Server

Image
La recherche d'objets dans SQL server est une tâche qui consiste à chercher une occurrence (table, procédure stockée, colonne, ou une expression ...) dans tous les objets SQL du serveur ou base de données.

Générer une liste de valeurs arbitraires (format date)

DECLARE @start date = '20150525' ; DECLARE @end date = getdate() ; WITH dates AS (     SELECT   CONVERT(VARCHAR(10), @start, 112)  AS date     UNION ALL     SELECT   CONVERT(VARCHAR(10), dateadd(DD,1,date) , 112)     FROM  dates     WHERE date < @end ) SELECT * FROM dates OPTION (MAXRECURSION 0);

Sécurité SQL Server : Comment créer un utilisateur, le mapper vers une BD et lui assigner des rôles via un script

Pour un utilisateur SQL : /* Ajout d'un compte SQL  à une base de données */ Use master ; Go  IF NOT EXISTS( select * from sys.sql_logins where name='MyLogin')  BEGIN CREATE LOGIN MyLogin with password= XXXXXX, check_policy = off; END GO Use Mydatabase; Go EXEC sp_change_users_login 'Auto_Fix', 'MyLogin' Pour un compte AD : Use master ; Go  IF NOT EXISTS( select * from sys.server_principals where name='Domain\User')  BEGIN CREATE LOGIN [MyLogin] FROM WINDOWS  with  DEFAULT_DATABASE=[MyDatabase]; END GO Use MyDatabase; Go /* Ajout de l'utilisateur [Domain\User] à la base de données */ CREATE USER [Domain\User] FOR LOGIN [MyLogin] ; /* Ajouter le rôle db_owner au compte */ sp_addrolemember 'db_owner', 'Domain\User'

Comment créer une chaîne de connexion

Image
Créez un fichier (.txt. par exemple) et renommer le en  .udl Entrez dans les  propriétés  de ce fichier Sur l'onglet Connection : Renseignez les infos de votre instance SQL Cliquez sur  Test Connection Vous aurez soit un message  d'échec , soit un message de  succès De nouveau, renommer le fichier en .txt qui contiendra la chaîne de connexion

Erreur de renommage d'une base de données

Si on tente de renommer une BD existante, et on obtient l'erreur suivante :  the database could not be exclusively locked to perform the operation ! Lla solution est la suivante : USE [master]; GO ALTER DATABASE Old_Name SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO ALTER DATABASE Old_Name MODIFY NAME = New_Name ALTER DATABASE New_Name SET MULTI_USER

Backup/Restore d'une Base de données

Backup Database : DECLARE @name VARCHAR(50)  -- nom de la base de données DECLARE @path VARCHAR(256) -- chemin du fichier du Backup DECLARE @fileName VARCHAR(256) -- nom du fichier pour le Backup   DECLARE @fileDate VARCHAR(20) -- date du backup DECLARE @SQL NVARCHAR(MAX) -- Renseigner le nom de la base de données à migrer SET @name='Ma_Base' -- Renseigner le répertoire de Backup SET @path = N'C:\mssql\MSSQL.2\MSSQL\Backup\' -- Mettre la base en mode Read_Only pour éviter tout écriture ou mise à jour de la base SET @SQL = 'ALTER DATABASE ' + @name + ' SET READ_ONLY WITH ROLLBACK IMMEDIATE' EXECUTE (@SQL) -- Spécifier le format du nom de fichier SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) SET @fileName = @path + @name + '_backup_' + @fileDate + '_Migration.BAK'  BACKUP DATABASE @name TO DISK=@fileName  WITH  STATS = 10 Restore Database :  -- Renseigner les fichiers physiques et logiques --...