Quel est le mot clé pour le nom de base de données (pas le serveur) dans DB2?
Je peux obtenir de l'actuel serveur de base de données que je suis connecté via
select
current server
from sysibm.sysdummy1
Ce n'est pas ce que je veux. Mes recherches sur Google ne lui a donné cette solution.
Je veux le nom de base de données.
En TSQL, je pouvais faire ce qui suit pour obtenir le nom de la base:
select db_name()
Mais, comment puis-je obtenir de l'actuel nom de base de données dans DB2?
MODIFIER:
Merci pour les réponses jusqu'à présent. Vous avez raison, j'en utilisant le mauvais terme (ce qui serait la base de données en TSQL) pour ce que je suis à la recherche de retour dans DB2. Donc, puisque je ne suis pas sûr de ce qu'il est appelé (peut-être tablespace):
Est-il une commande qui sera de retour le mot "prodbeans" dans la suite?
select
<command>
from
prodbeans.BNSMPLS_PROMO x
- Êtes-vous sûr que le SERVEUR ACTUEL n'est pas ce que vous voulez? Dans DB2 V9.7 sur Windows, c'est de me donner le nom de base de données.
- Ceci s'applique également sur les anciennes versions de DB2 -- 9,5 et 9.1.
Vous devez vous connecter pour publier un commentaire.
Comme @Leon dit dans son commentaire, le SERVEUR ACTUEL ne de retourner le nom de la base de données.
Il semble que la confusion provient du fait qu'une "base de données" dans SQL server, Sybase et même de MySQL sont conceptuellement plus près à un espace de stockage ou un schéma dans DB2.
Dans DB2, d'un tablespace est un conteneur logique physique des objets de base de données (tables, index). Le tablespace a des contenants (les fichiers physiques qui définissent l'emplacement où les données sont écrites, qui sont la même chose qu'un groupe de fichiers dans SQL server).
Un schéma dans DB2 est une logique de qualification pour les objets (tables, index, vues, etc.). Par défaut, lorsqu'un utilisateur se connecte à une base de données, le SCHÉMA ACTUEL registre spécial par défaut, le login de l'utilisateur ID; cependant, il peut être modifié à l'aide de l'ENSEMBLE ACTUEL de SCHÉMA de déclaration. SCHÉMA ACTUEL est utilisé pour qualifier les objets dans une instruction SQL.
Dans SQL Server le "maître" de la base de données s'apparente à la SYSCATSPACE tablespace dans une base de données DB2, qui stocke le catalogue du système dans le SYSCAT (et SYSIBM) schémas. Le catalogue du système tables contiennent des métadonnées sur tous les objets dans la base de données.
SQL Server "de la base de données Tempdb" base de données équivalent à tablespaces temporaires dans une base de données DB2. Par défaut, il est un espace appelé TEMPSPACE1, mais il peut y avoir plusieurs tablespaces temporaires au sein d'une seule base de données.
La base de données Msdb correspond à la SYSTOOLSPACE tablespace (et SYSTOOLS schéma).
DB2 n'a pas d'équivalent pour le Modèle de base de données. (DB2 permettra de créer une base de données vide lorsque vous exécutez la commande "create database", mais vous ne pouvez pas définir un modèle pour ce qui est inclus dans cette base de données.
Si votre base de données DB2 est à l'aide de la réplication SQL, il peut y avoir un ensemble de tables dans la base de données qui stockent l'état de la réplication et de l'information, mais il n'existe pas de convention de nommage pour le schéma de la tenue de ces données. (ce serait l'équivalent de la base de données de Distribution).
Il y a un "registre spécial", du nom du SERVEUR ACTUEL et un nommé SCHÉMA ACTUEL.
Voir aussi: comment puis-je obtenir le schéma actuel sur DB2 si j'ai un JDBC conneciton?.
SCHÉMA ACTUEL est défini par défaut pour le nom d'utilisateur, mais peut être changé à une valeur plus appropriée. Le suivant sera de retour prodbeans:
Notez que vous n'avez pas besoin de qualifier le nom de la table si vous définissez le schéma.
Basé sur votre édité question, je pense que vous êtes à la recherche pour le schéma.
À des fins de référence, le suivant, vous obtiendrez un tableau du tablespace:
"nom" est le nom de la table et de "créateur" est le nom du schéma.