|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2008 Messages : 202 ![]() |
Hello,
Dans sql management studio, toutes mes tables sont préfixées par dbo. dans le listing dans la partie gauche de l'écran. Si je fait un drag and drop sur le nom de la table pour l'utiliser dans une requête, ça me drag ce préfixe avec le nom de la table. Sauf que si je veux executer la requete sans avoir d'erreur, je dois virer ce préfixe dbo. C'est un peu une perte de temps... La question que je me posais, c'est à quoi ça sert ce préfixe. Pourquoi sql management studio s'entête t il à placer cet élément devant le nom de la table systématiquement ? D'avance merci |
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() |
Citation:
dbo est le schéma par défaut auquel sont rattachées vos tables... vous pouvez créer plusieurs schéma pour 'grouper' vos tables par exemple. Baser vos tables sur des schémas différents permet par exemple de gérer leurs droits directement au niveau du schéma...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#3 | |||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Il faudrait commencer à apprendre le langage SQL !
Ce préfixe dbo est le schéma SQL par défaut de l'objet. Tous les objets d'une base sont rangés dans des schémas SQL. Si vous ne préciser pas le schéma SQL lors du CREATE, l'objet est créé dans le schéma par défaut associé à l'utilisateur SQL qui créé l'objet. Si lors de la création de l'utilisateur vous n'avez pas préciser de schéma par défaut, alors c'est le schéma par défaut de la base qui est utilisé. Il n'est pas possible de créer des objets non rattaché à un schéma SQL. Ne pas utiliser les schémas en préfixe des objets est idiot, car cela posera des problèmes de performances : le SGBDR doit rechercher quel est le schéma à utiliser dans le contexte de lancement de la requête et cela peut varier d'un utilisateur à l'autre. Autrement dit, le serveur, en l'absence de la précision du schéma SQL et pour chaque objet, est obligé de faire une phase de résolution de nom du style : 1) quel est le schéma par défaut de l'utilisateur 2) l'objet existe t-il dans le schéma par défaut de l'utilisateur 3) si non, quel est le schéma par défaut de la base 3 ) l'objet existe t-il dans le schéma par défaut de la base. Tout ceci prends du temps au détriment des performances... Pire, cela oblige parfois à recompiler procédures et plan de requête ! Vous constaterez qu'il existe toujours plusieurs schémas SQL dans votre base de données (allez les voir dans l'arborescence de votre base à sécurité / schémas). Ceux en db_ sont mà pour rétrocompatibilité et vous pouvez les retirer. sys est le schéma des objets systèmes (ceux que SQL Server utilise en interne) INFORMATION_SCHEMA est la norme SQL pour les objets de méta données (vues du "catalogue").... entre autres ! Il existe d'autres avantages à utiliser des schéma SQL. Voir l'article que j'ai écrit à ce sujet : http://blog.developpez.com/sqlpro/p5...es-schema-sql/ Si vous aviez lu mon livre http://sqlpro.developpez.com/booksql05/, vous auriez su cela... Extrait : " Citation:
Quand à vos problème personnel d'écriture des requêtes, vous vous y prenez mal. Sans doutes rajoutez vous des crochet inutiles ou d'autres éléments fantaisistes ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com