Il existe plusieurs instances SQL Server sur le réseau de la société, toutes sont nommées de manière unique, cependant, chacune d'un même nom de base de données, comme ClientDB. Je sais qu'il y a un identifiant de base de données pour chacun mais je me demandais s'il y avait un identifiant unique qui fonctionnerait dans des cas? Maintenant que j'écris cela, cela sonne bien idiot, comment une nouvelle instance connaît-elle des noms de base de données déjà là-bas? Je demande parce que je recueille des informations sur toutes nos bases de données telles que le nom, le créateur, la taille, la dernière sauvegarde, etc. dans une table et qu'il est confus, car de nombreux enregistrements ont le même nom de base de données. Peut-être qu'il y a un identifiant d'instance ou une base de données quelque part ou dois-je juste avoir une trace de l'instance et le nom de la base de données pour identifier un enregistrement? Merci pour votre aide. P>
3 Réponses :
Vous devez préparer le nom de la base de données avec l'hôte ". L'hôte est également connu comme: p>
Ça s'appelle Ensemble, ils comprennent une clé suffisamment unique pour la plupart des cas. Notez cependant que vous pourriez toujours obtenir des collisions si: p>
Clé composite code>. Étant donné que le nom de la base de données n'est pas suffisant pour l'identifier de manière unique parmi vos actifs, vous devez apporter des attributs supplémentaires à la table. P>
@@ Server_Name code> Pour identifier une instance de MS SQL Server sur une case, ainsi que le nom de la case; Li>
db_name () code> ou a sélectionnée à partir de
sys.databases code> pour obtenir le nom de la base de données sur cette instance. LI>
ul>
par défaut_domaine () code> si vos versions SQL Server le supportent; Li>
Le the page wikipedia dit ce qui suit sur les chances que vous trouverez deux de la même manière Valeur dans, et out, de votre réseau: P> Bien que la probabilité qu'un UUID soit dupliqué ne soit pas zéro, il est
assez proche pour zéro pour être négligeable p>
blockQquote> La requête ci-dessous prendra le GUID que vous recherchez. P> service_broker_guid code>
propriété attribué à chaque base de données (autre que maître code> et
modèle code>) lors de la création dans SQL Server pourrait satisfaire votre besoin . Le
Service_borker_guid code> est un Identificateur unique global , autrement appelé uuid .
+----------------+----------+--------------------------------------+
| host_nm | db_nm | service_broker_guid |
+----------------+----------+--------------------------------------+
| MY_SERVER_NAME | ClientDB | 9B7C1BF1-022D-423D-9780-88B555459868 |
+----------------+----------+--------------------------------------+
Il existe un «nom de la machine» et un «nom du serveur» pour SQL Server, peut-être que c'est ce que vous recherchez. Docs. microsoft.com/en-us/sql/t-sql/functions/.../a>