Guide de référence de l'API d'instance SQL Server Express LocalDB

Dans le monde traditionnel SQL Server basé sur les services, différentes instances de SQL Server installées sur un même ordinateur sont physiquement séparées ; autrement dit, chaque instance doit être installée et supprimée séparément, possède un jeu distinct de binaires, et s'exécute sous un processus de service distinct. Le nom de l'instance SQL Server est utilisé pour spécifier l'instance SQL Server à laquelle l'utilisateur souhaite se connecter.

L'API de l'instance de SQL Server Express LocalDB utilise un modèle simplifié d'instance « allégée ». Bien que les instances LocalDB individuelles soient séparées sur le disque et dans le Registre, elles utilisent le même jeu de binaires LocalDB partagés. De plus, LocalDB n'utilise pas de services ; les instances de LocalDB sont lancées sur demande par des appels d'API d'instance de LocalDB. Dans LocalDB, le nom de l'instance est utilisé pour spécifier les instances de LocalDB avec lesquelles l'utilisateur souhaite travailler.

Une instance de LocalDB est toujours détenue par un seul utilisateur et est visible et accessible uniquement dans le contexte de cet utilisateur, sauf si le partage d'instance est activé.

Bien que techniquement les instances de LocalDB ne soient pas les mêmes que les instances SQL Server traditionnelles, leur utilisation est similaire. Elles sont appelées instances pour souligner cette similarité et les rendre plus intuitives aux utilisateurs de SQL Server.

LocalDB prend en charge deux types d'instances : les instances automatiques (AI) et les instances nommées (NI). L'identificateur d'une instance de LocalDB est le nom de l'instance.

Instances automatiques de LocalDB

Les instances automatiques de LocalDB sont « publiques » ; elles sont créées et gérées automatiquement pour l'utilisateur et peuvent être utilisées par n'importe quelle application. Il existe une instance automatique de LocalDB pour chaque version de LocalDB installée sur l'ordinateur de l'utilisateur.

Les instances automatiques de LocalDB fournissent la gestion transparente d'instances. L'utilisateur n'a pas besoin de créer l'instance. Cela permet aux utilisateurs d'installer facilement des applications et de migrer vers d'autres ordinateurs. Si la version spécifiée de LocalDB est installée sur l'ordinateur, l'instance automatique de LocalDB pour cette version est également disponible sur cet ordinateur.

Gestion automatique d'instances

Un utilisateur n'a pas besoin de créer une instance automatique de LocalDB. L'instance est immédiatement créée la première fois que l'instance est utilisée, à condition que la version spécifiée de LocalDB soit disponible sur l'ordinateur de l'utilisateur. Du point de vue de l'utilisateur, l'instance automatique est toujours présente si les binaires de LocalDB sont présents.

D'autres opérations de gestion d'instances, telles que la suppression, le partage et l'annulation du partage, s'exécutent également pour les instances automatiques. En particulier, la suppression d'une instance automatique réinitialise efficacement l'instance, qui sera recréée lors de l'opération suivante de démarrage. La suppression d'une instance automatique peut être requise si les bases de données système sont endommagées.

Règles de dénomination d'instance automatique

Les instances automatiques de LocalDB ont un modèle particulier pour le nom de l'instance qui appartient à un espace de noms réservé. Cela est nécessaire pour éviter des conflits de noms avec les instances nommées de LocalDB.

Le nom de l'instance automatique est le numéro de version Release de base de LocalDB précédé d'un caractère « v ». Il ressembler à « v » plus deux nombres avec un point entre eux ; par exemple, v11.0 ou V12.00.

Voici des exemples de noms d'instance automatique non conformes :

  • 11.0 (il manque le caractère « v » au début)

  • v11 (il manque un point et le second numéro de version)

  • v11. (il manque le deuxième numéro de version)

  • v 11.0.1.2 (le numéro de version a plus de deux parties)

Instances nommées de LocalDB

Les instances nommées de LocalDB sont « privées » ; une instance appartient à une seule application qui est chargée de créer et de gérer l'instance. Les instances nommées de LocalDB fournissent l'isolement et améliorent les performances.

Création d'instance nommée

L'utilisateur doit créer des instances nommées explicitement via l'API de gestion de LocalDB, ou implicitement à l'aide du fichier app.config pour une application managée. Une application managée peut également utiliser l'API.

Chaque instance nommée possède une version associée de LocalDB ; autrement dit, elle indique un jeu de binaires de LocalDB. La version de l'instance nommée est définie pendant le processus de création de l'instance.

Règles de dénomination d'instance nommée

Un nom d'instance de LocalDB peut comporter au plus 128 caractères (la limite est imposée par le type de données sysname). Il s'agit d'une différence importante comparée aux noms d'instances SQL Server traditionnelles, qui sont limités aux noms NetBIOS de 16 caractères ASCII. Cette différence tient du fait que LocalDB traite les bases de données comme des fichiers, ce qui implique par conséquent une sémantique basée sur des fichiers. Cette sémantique est donc intuitive pour que les utilisateurs aient plus de liberté en choisissant les noms d'instances.

Un nom d'instance de LocalDB peut contenir tous les caractères Unicode qui sont valides dans le composant nom de fichier. Les caractères non conformes dans un composant nom de fichier incluent généralement les caractères suivants : les caractères ASCII/Unicode 1 à 31, ainsi que les guillemets ("), le signe inférieur à (<), le signe supérieur à (>), la barre verticale (|), le retour arrière (\ b), la tabulation (\ t), le signe deux-points (:), l'astérisque (*), le point d'interrogation (?), la barre oblique inverse (\) et la barre oblique (/). Notez que le caractère Null (\0) est autorisé, car il est utilisé pour la fin de chaîne ; tout caractère qui se trouve après le premier caractère NULL est ignoré.

[!REMARQUE]

La liste de caractères non conformes peut dépendre du système d'exploitation et peut changer dans les versions ultérieures.

Les espaces de début et de fin dans les noms d'instances sont ignorés et seront supprimés.

Pour éviter les conflits de noms, les instances nommées de LocalDB ne peuvent pas avoir un nom qui suit le modèle de nom des instances automatiques, comme décrit plus haut dans « Règles de dénomination d'instance automatique ». Une tentative de création d'une instance nommée avec un nom qui suit le modèle de dénomination d'instance automatique crée efficacement une instance par défaut.

Rubriques de référence SQL Server Express LocalDB