web-dev-qa-db-fra.com

Quel est l'intérêt de "Catalogue initial" dans une chaîne de connexion SQL Server?

Chaque chaîne de connexion SQL Server que je vois ressemble à ceci:

Data Source=MyLocalSqlServerInstance;Initial Catalog=My Nifty Database;
    Integrated Security=SSPI;

Ai-je besoin du paramètre Catalogue initial? (Apparemment non, car l'application sur laquelle je travaille semble fonctionner sans elle.)

Alors, à quoi ça sert?

82
Ryan Lundy

Si le nom d'utilisateur figurant dans la chaîne de connexion a accès à plusieurs bases de données, vous devez spécifier la base de données à laquelle vous souhaitez que la chaîne de connexion se connecte. Si votre utilisateur n'a qu'une seule base de données disponible, vous avez alors raison de dire que cela n'a pas d'importance. Mais c'est une bonne pratique de mettre cela dans votre chaîne de connexion.

48
Avitus

Ceci est le base de données initiale de la source de données lorsque vous vous connectez.

Edité pour plus de clarté :

Si vous avez plusieurs bases de données dans votre instance SQL Server et que vous ne souhaitez pas utiliser la base de données par défaut, vous avez besoin d'un moyen de spécifier celle que vous allez utiliser.

33
Andy West

La définition d'un catalogue initial vous permet de définir la base de données que les requêtes exécutées sur cette connexion utiliseront par défaut. Si vous ne définissez pas cette option pour une connexion à un serveur sur lequel plusieurs bases de données sont présentes, vous devrez souvent avoir une instruction USE dans chaque requête afin de déclarer explicitement la base de données sur laquelle vous essayez d'exécuter la requête. Le paramètre Catalogue initial est un bon moyen de déclarer explicitement une base de données par défaut.

12
jliles