Le Transact-SQL (T-SQL) est une extension propriétaire de Sybase et Microsoft au langage SQL. Transact-SQL a été développé à l’origine par la société Sybase, dès les premières versions de son moteur de base de données du même nom. De manière similaire au PL/SQL d’Oracle, Transact-SQL fournissait le moyen d’étendre les fonctionnalités de base du SGBD, via des programmes appelés “procédures stockées”. Le code source comme compilé, est en effet stocké dans la base de données, par opposition aux programmes écrits en langage de programmation classique, dont le code source d’une part, le code compilé d’autre part, sont stockés dans des fichiers du système de fichiers. Lorsque Microsoft a souhaité étendre son offre logicielle pour inclure un SGBD relationnel, il a passé des accords avec l’un des acteurs de l’époque, le challenger derrière principalement Oracle, RTI Ingres, Informix : Sybase. Le SGBD Sybase a été porté sur Windows. Microsoft a peu à peu acquis le savoir-faire en matière de SGBD relationnel, et développé son propre moteur de base de données, Microsoft SQL Server, à partir de la souche Sybase. Sybase de son côté a fait évoluer son SGBD, devenu depuis Adaptive Server Enterprise. Transact-SQL est ainsi aujourd’hui le langage de programmation associé à la fois aux SGBD Microsoft SQL Server et Sybase Adaptive Server Enterprise. Par rapport au SQL, le T-SQL ajoute les fonctionnalités suivantes :
- Éléments de programmation procédurale (boucle, conditions…).
- La possibilité de créer et d’utiliser des variables locales.
- Des fonctions de manipulations de chaîne de caractères, de dates et de calculs mathématiques
Définition Wikipédia
Cet article “Le Transact SQL pour les nuls” a pour objectif de rassembler de nombreux exemples de scripts en Transact SQL à utiliser sans modération dans l’administration quotidienne de votre environnement SQL Server.
Comment exécuter un script en Transact SQL
- Rendez-vous dans SQL Entreprise manager ou SQL Server Management Studio Express que vous pouvez installer directement sur votre station d’administration si vous souhaitez administrer vos serveurs SQL Server ou SQL Server Express à distance. Veuillez notez qu’une instance SQL Server Express ne dispose pas par défaut d’outil d’administration. L’installation de SQL Server Management Studio Express sera donc un prérequis.
- Ouvrez l’analyseur de requête ou cliquez sur New Query.
- Entrez vos scripts et exécutez les en cliquant sur Execute.
Quelques scripts en Transact SQL pratiques
Afficher la taille d’une table SQL
USE Nom_Database; GO EXEC sp_spaceused N'Nom_Table'; GO
Mettre une base SQL en lecture seule en Transact SQL
USE master EXEC sp_dboption 'Nom_Database', 'read only', 'TRUE'
Changer le nom d’une base SQL en Transact SQL
EXEC sp_renamedb 'ancien_nom', 'nouveau_nom'
Mettre une base SQL hors ligne en Transact SQL
EXEC sp_dboption 'Nom_Database', Offline, 'True'
Supprimer une base de données en Transact SQL
EXEC sp_dbremove 'Nom_Database'
Mettre une base SQL en mono utilisateur en Transact SQL
USE master EXEC sp_dboption ‘Nom_Database’, ‘single user’, 'TRUE'
Afficher la dernière requête SQL exécutée par un processus en Transact SQL
DECLARE @Handle binary(20) SELECT @Handle = sql_handle FROM sysprocesses WHERE spid = 52 SELECT * FROM ::fn_get_sql(@Handle)
où spid = le numéro du processus à analyser.
Afficher la taille des logs des bases SQL en transact SQL
DBCC SQLPERF (LOGSPACE)
Afficher la version de Microsoft SQL Server en Transact SQL
Select @@version
Correspondance des versions:
- 6.50.201 SQL Server 6.5 release
- 6.50.213 SQL Server 6.5 with Service Pack 1
- 6.50.240 SQL Server 6.5 with Service Pack 2
- 6.50.258 SQL Server 6.5 with Service Pack 3
- 6.50.281 SQL Server 6.5 with Service Pack 4
- 6.50.415 SQL Server 6.5 with Service Pack 5
- 6.50.416 SQL Server 6.5 with Service Pack 5a
- 7.00.623 SQL Server 7.0 release
- 7.00.699 SQL Server 7.0 SP1
- 7.00.842 SQL Server 7.0 SP2
- 7.00.961 SQL Server 7.0 SP3
- 7.00.1063 SQL Server 7.0 SP4
- 8.00.194 SQL Server 2000 release
- 8.00.384 SQL Server 2000 SP1
- 8.00.534 SQL Server 2000 SP2
- 8.00.760 SQL Server 2000 SP3
- 8.00.2039 SQL Server 2000 SP4
- 8.00.2040 SQL Server 2000 SP4 + Hotfix
Afficher la taille d’une base de données SQL
Exec sp_spaceused
ou
USE Nom_Database; GO EXEC sp_spaceused @updateusage = N'TRUE'; GO