Connaître le pourcentage d’avancement d’une tâche sous SQL Server 2005 et 2008

S’il est impossible de connaître l’avancement d’une requête qui est en cours d’exécution dans une instance de SQL Server (cela est normal puisque l’exécution des requêtes n’est pas « linéaire »), il est en revanche possible de connaître l’avancement des tâches suivantes :

Lire la suite

Quelle différence y a-t’il entre une colonne et un champ ? entre une ligne et un enregistrement ? entre une table et un tableau ?

Lors de mes lectures et participations au forum SQL Server de ce site, je vois souvent des participants remplacer le terme ligne par enregistrement ou record, mais aussi le terme colone par le terme champ ou encore field, et enfin le pire : table par tableau, probablement par analogie de la représentation des résultats de requête avec un fichier Excel.

Si certains diront que c’est approximativement la même chose, et que s’attacher a ce type de détails revient à chercher des poils sur les œufs, je vais démontrer que faire cet abus de langage montre qu’on est assez imprécis …

Lire la suite

Récupérer les options de session

Comment connaître la liste des options de session (par exemple SET NOCOUNT ON) que nous utilisons dans la session en cours ou bien dans le contexte d’exécution ?
Ce snippet est valable pour les options suivantes :

– DISABLE_DEF_CNST_CHK
– IMPLICIT_TRANSACTIONS
– CURSOR_CLOSE_ON_COMMIT
– ANSI_WARNINGS
– ANSI_PADDING
– ANSI_NULLS
– ARITHABORT
– ARITHIGNORE
– QUOTED_IDENTIFIER
– NOCOUNT
– ANSI_NULL_DFLT_ON
– ANSI_NULL_DFLT_OFF
– CONCAT_NULL_YIELDS_NULL
– NUMERIC_ROUNDABORT
– XACT_ABORT

Et pas pour les suivantes :

– TEXTSIZE
– LANGUAGE
– DATEFORMAT
– DATEFIRST
– LOCK_TIMEOUT
– ISOLATION LEVEL

Lire la suite

Les dangers de la vérification de l’intégrité des données : la commande DBCC CHECKDB

La plupart du temps, lorsqu’on pose la question à des personnes qui débutent sous SQL Server, la réponse à la question : « comment faites-vous pour résoudre une erreur de page déchirée ou de somme de contrôle « , la réponse est bien souvent : « j’utilise la commande DBCC CHECKDB avec l’option REPAIR_ALLOW_DATA_LOSS » …

Et là, c’est le drame, car il existe avant cette options bien d’autres solutions.

Comme vous allez le voir, l’option REPAIR_ALLOW_DATA_LOSS est une option à utiliser en dernier recours, tellement les dégâts qu’elle peut causer sont dangereux …
Lire la suite

Lister les permissions dont un utilisateur dispose sous SQL Server 2005 et 2008 : la fonction fn_my_permission

La gestion des droits sous SQL Server étant complexe, puisqu’on peut octroyer des droits au niveau de l’instance et au niveau de la base de données, il est moins simple d’obtenir la liste complète des droits octroyés à un utilisateur, ou de connaître la liste des droits qu’on nous a octroyés.
Voyons comment obtenir cette liste de façon simple, avec la fonction fn_my_permission

Lire la suite