Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

- A. Crer une base de donnes sans spcifier de fichiers USE master GO CREATE DATABASE mytest B.

Crer une base de donnes simple USE master GO CREATE DATABASE Products ON ( NAME = prods_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods.mdf', SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1 ) GO C. Crer une base de donnes sans spcifier SIZE USE master GO CREATE DATABASE Products2 ON ( NAME = prods2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods2.mdf' ) GO D. Crer une base de donnes qui spcifie les fichiers de donnes et les fichiers du journal des transactions USE master GO CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = 'c:\program files\microsoft SQL Server\mssql\data\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = 'Sales_log', FILENAME = 'c:\program files\microsoft SQL Server\mssql\data\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO E. Crer une base de donnes en spcifiant plusieurs fichiers de donnes et plusieurs fichiers du journal des transactions USE master GO CREATE DATABASE Archive ON PRIMARY ( NAME = Arch1, FILENAME = 'c:\program files\microsoft SQL Server\mssql\data\archdat1.mdf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), 1

( NAME = Arch2, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat2.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat3.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON ( NAME = Archlog1, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog1.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Archlog2, FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog2.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) GO F. Crer une base de donnes avec des groupes de fichiers USE master GO CREATE DATABASE Sales ON PRIMARY ( NAME = SPri1_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri1dat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), ( NAME = SPri2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), FILEGROUP SalesGroup1 ( NAME = SGrp1Fi1_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp1Fi2_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), FILEGROUP SalesGroup2 ( NAME = SGrp2Fi1_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp2Fi2_dat, 2

FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = 'Sales_log', FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO

G. Attacher une base de donnes sp_detach_db Archive GO CREATE DATABASE Archive ON PRIMARY (FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf') FOR ATTACH GO

- CREATE TABLE TCOMMANDE (CMD_ID INT NOT NULL PRIMARY KEY, FRN_NOM CHAR(16), FRN_PRENOM CHAR(16), CONSTRAINT FK_ TCOMMANDE_NOM_PRENOM FOREIGN KEY (FRN_NOM, FRN_PRENOM) REFERENCES TFOURNISSEUR (FRN_NOM, FRN_PRENOM) ON DELETE CASCADE)

- CREATE PROCEDURE proc2 AS DECLARE @NumDept INT DECLARE @NombreEmp INT SELECT @NumDept = job_id, @NombreEmp = count(*) FROM employee GROUP BY job_id PRINT @NumDept PRINT @NombreEmp GO

CREATE FUNCTION FN_ENTIERS (@MAXINT integer, @NATUREL bit = 0) RETURNS @integers TABLE (N int PRIMARY KEY NOT NULL) AS BEGIN DECLARE @N INT DECLARE @T TABLE (N int) 3

SET @N = 0 -- insertion des 10 premiers chiffres de 0 9 WHILE @N < 10 BEGIN INSERT INTO @T VALUES (@N) SET @N = @N + 1 END SET @N = @N -1 -- si @N est suprieur 9, alors supprimer les valeurs en trop IF @N > @MAXINT DELETE FROM @T WHERE N > @MAXINT ELSE INSERT INTO @T SELECT DISTINCT 1 * T1.N + 10 * T2.N + + 100 * T3.N + 1000 * T4.N FROM @T AS T1 CROSS JOIN @T AS T2 CROSS JOIN @T AS T3 CROSS JOIN @T AS T4 WHERE 1 * T1.N + 10 * T2.N + + 100 * T3.N + 1000 * T4.N BETWEEN 10 AND @MAXINT -- s'il s'agit d'entiers naturels, supprimer le zro IF @NATUREL = 1 DELETE FROM @T WHERE N = 0 -- insertion dans la variable de retour INSERT INTO @integers SELECT DISTINCT N FROM @T RETURN END SELECT * FROM dbo.FN_ENTIERS (13, 1)

CREATE VIEW V_DATEHEURE_COURANTE AS SELECT CURRENT_TIMESTAMP AS DHC

CREATE FUNCTION FN_DELTA_MONTH (@MaDate DATETIME) RETURNS INT AS BEGIN DECLARE @N INT 4

SELECT @N = DATEDIFF(MONTH, @MaDate, DHC) FROM V_DATEHEURE_COURANTE RETURN @N END

SELECT dbo.FN_DELTA_MONTH('20020101')

CREATE TRIGGER Prs_upd1 ON [dbo].[Tpersonne] FOR UPDATE AS DECLARE @prs_id int DECLARE @prs_id_old int DECLARE @prs_nom char(50) DECLARE @prs_nom_old char(50) select @prs_id=prs_id , @prs_nom= prs_nom from inserted DECLARE MyCUS CURSOR for select prs_id , prs_nom from deleted Open MyCUS Fetch MyCUS Into @prs_id_old , @prs_nom_old while @@Fetch_Status = 0 begin if update(prs_id) begin insert into TLog (Num, nom_col, nom_table, old_val, new_val, user_I, date_I, type) values (@prs_id_old, 'prs_id', 'TPersonne', @prs_id_old, @prs_id, user_name(), getdate(), 'Modification') end if update(prs_nom) begin insert into TLog (Num, nom_col, nom_table, old_val, new_val, user_I, date_I, type) values (@prs_id_old, 'prs_nom', 'TPersonne', @prs_nom_old, @prs_nom, user_name(), getdate(), 'Modification') end Fetch MyCUS Into @prs_id_old , @prs_nom_old End

Les privileges : sp_grantlogin :

L'exemple suivant autorise l'utilisateur Windows 2000 Corporate\BobJ se connecter SQL Server. EXEC sp_grantlogin 'Corporate\BobJ' ou EXEC sp_grantlogin [Corporate\BobJ] sp_revokelogin 5

Syntaxe sp_revokelogin [ @loginame = ] 'login' Exemple Dans cet exemple, les entres de connexion de l'utilisateur Windows NT Corporate\MollyA sont supprimes. EXEC sp_revokelogin 'Corporate\MollyA' ou EXEC sp_revokelogin [Corporate\MollyA] sp_denylogin Syntaxe sp_denylogin [ @loginame = ] 'login' Exemple L'exemple ci-dessous empche l'utilisateur Corporate\GeorgeW de se connecter SQL Server. EXEC sp_denylogin 'Corporate\GeorgeW' ou EXEC sp_denylogin [Corporate\GeorgeW] sp_addlogin :

A. Cration d'un ID de connexion sans mot de passe avec la base de donnes master par dfaut Cet exemple cre une connexion d'accs SQL Server pour l'utilisateur Victoria, sans spcifier de mot de passe ou de base de donnes par dfaut. EXEC sp_addlogin 'Victoria' B. Cration d'un ID de connexion et une base de donnes par dfaut Cet exemple cre une connexion d'accs SQL Server pour l'utilisateur Albert, avec le mot de passe " food " et la base de donnes par dfaut corporate. EXEC sp_addlogin 'Albert', 'food', 'corporate' C. Cration d'un ID de connexion avec une langue par dfaut diffrente Cet exemple cre une connexion d'accs SQL Server pour l'utilisateur Claire Picard, avec le mot de passe " caniche ", la base de donnes par dfaut public_db et la langue " french " (Franais) par dfaut. EXEC sp_addlogin 'Claire Picard', 'caniche', 'public_db', 'french' D. Cration d'un ID de connexion avec un SID spcifique Cet exemple cre une connexion d'accs SQL Server pour l'utilisateur Michael, avec le mot de passe " chocolate ", la base de donnes pubs par dfaut, la langue " us_english " (anglais US) par dfaut et le numro SID 0x0123456789ABCDEF0123456789ABCDEF. EXEC sp_addlogin 'Michael', 'chocolate', 'pubs', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF E. Cration d'un ID de connexion sans cryptage du mot de passe Cet exemple cre une connexion d'accs SQL Server pour l'utilisateur Margaret avec le mot de passe " Rose " sur Server1, extrait le mot de passe crypt, ajoute la connexion d'accs pour l'utilisateur Margaret Server2 en utilisant le mot de passe prcdemment crypt, mais ne le crypte pas nouveau. L'utilisateur Margaret peut se connecter Server2 avec le mot de passe " Rose ". -- Server1 6

EXEC sp_addlogin Margaret, Rose --Results New login created. -- Extract encrypted password for Margaret SELECT CONVERT(VARBINARY(32), password) FROM syslogins WHERE name = 'Margaret' --Results -----------------------------------------------------------------0x2131214A212B57304F5A552A3D513453 (1 row(s) affected) -- Server2 EXEC sp_addlogin 'Margaret', 0x2131214A212B57304F5A552A3D513453, @encryptopt = 'skip_encryption'

sp_password :

sp_password [ [ @old = ] 'old_password' , ] { [ @new =] 'new_password' } [ , [ @loginame = ] 'login' ] Exemples A. Modification du mot de passe d'une connexion sans disposer de l'ancien Dans cet exemple le mot de passe de la connexion Victoria est transform en ok. EXEC sp_password NULL, 'ok', 'Victoria' B. Modification d'un mot de passe Dans cet exemple, le mot de passe de la connexion Victoria est transform de ok en coffee. EXEC sp_password 'ok', 'coffee'

GRANT :

GRANT SELECT ON EMP TO DUBOIS REVOKE :

REVOKE SELECT ON EMP FROM DUBOIS

Sauvegarde : 7

USE master EXEC sp_addumpdevice 'disk', 'MyNwind_1', DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat' BACKUP DATABASE MyNwind TO MyNwind_1 USE master EXEC sp_addumpdevice 'disk', 'MyNwind_2', 'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat' USE master EXEC sp_addumpdevice 'disk', 'MyNwindLog1', 'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwindLog1.dat' BACKUP DATABASE MyNwind TO MyNwind_2 BACKUP LOG MyNwind TO MyNwindLog1 BACKUP LOG MyNwind TO MyNwind_log3 WITH NO_TRUNCATE GO USE MyNwind GO BACKUP DATABASE MyNwind TO TAPE = '\\.\Tape0' WITH FORMAT, NAME = 'Full Backup of MyNwind' GO BACKUP DATABASE MyNwind TO MyNwind_1 WITH DIFFERENTIAL GO BACKUP DATABASE MyNwind TO MyNwind_1 WITH INIT GO BACKUP DATABASE MyNwind FILE = 'MyNwind_data_1', FILEGROUP = 'new_customers', FILE = 'MyNwind_data_2', FILEGROUP = 'first_qtr_sales' TO MyNwind_1 GO ------USE master GO RESTORE DATABASE MyNwind FROM MyNwind_1 8

WITH STANDBY = 'c:\undo.ldf' GO RESTORE LOG MyNwind FROM MyNwind_log1 WITH STANDBY = 'c:\undo.ldf' GO RESTORE LOG MyNwind FROM MyNwind_log2 WITH STANDBY = 'c:\undo.ldf' GO RESTORE LOG MyNwind FROM MyNwind_log3 WITH STANDBY = 'c:\undo.ldf' GO RESTORE DATABASE MyNwind WITH RECOVERY GO

You might also like