Compartilhar via


Referência de LocalDB do SQL Server Express – APIs da instância

Aplica-se: SQL Server

No mundo do SQL Server tradicional baseado em serviço, as instâncias individuais do SQL Server instaladas em um único computador são separadas fisicamente; ou seja, cada instância deve ser instalada e removida separadamente, ter um conjunto separado de binários e ser executada em um processo de serviço separado. O nome da instância do SQL Server é usado para especificar a qual instância do SQL Server o usuário deseja se conectar.

A API de instância do SQL Server Express LocalDB usa um modelo de instância simplificado e "light". Embora as instâncias de LocalDB individuais estejam separadas no disco e no Registro, elas usam o mesmo conjunto de binários de LocalDB compartilhados. Além disso, o LocalDB não usa serviços; as instâncias de LocalDB são iniciadas sob demanda através das chamadas de API da instância de LocalDB. No LocalDB, o nome de instância é usado para especificar com qual das instâncias de LocalDB o usuário deseja trabalhar.

Uma instância LocalDB é sempre de propriedade de um único usuário e é visível e acessível somente no contexto desse usuário, a menos que o compartilhamento de instâncias esteja habilitado.

Embora, tecnicamente, as instâncias de LocalDB não sejam iguais às instâncias tradicionais do SQL Server, seu uso pretendido é similar. Eles são chamados de instâncias para enfatizar essa semelhança e torná-los mais intuitivos para os usuários do SQL Server.

O LocalDB oferece suporte a dois tipos de instâncias: AI (instâncias automáticas) e NI (instâncias nomeadas). O identificador de uma instância de LocalDB é o nome da instância.

Instâncias automáticas de LocalDB

As instâncias automáticas do LocalDB são "públicas"; Eles são criados e gerenciados automaticamente para o usuário e podem ser usados por qualquer aplicativo. Existe uma instância automática do LocalDB para cada versão do LocalDB instalada no computador do usuário.

As instâncias automáticas de LocalDB fornecem gerenciamento de instância contínuo. O usuário não precisa criar a instância. Isso permite que os usuários instalem facilmente os aplicativos e migrem para computadores diferentes. Se o computador de destino tiver a versão especificada de LocalDB instalada, a instância automática de LocalDB para essa versão também estará disponível nesse computador.

Gerenciamento automático de instância

Um usuário não precisa criar uma instância automática de LocalDB. A instância é criada lentamente na primeira vez que é usada, desde que a versão especificada do LocalDB esteja disponível no computador do usuário. Do ponto de vista do usuário, a instância automática estará sempre presente se os binários do LocalDB estiverem presentes.

Outras operações de gerenciamento de instância, como Excluir, Compartilhar e Descompartilhar, também funcionam para instâncias automáticas. Em particular, a exclusão de uma instância automática redefine a instância, que será recriada na próxima operação Iniciar. A exclusão de uma instância automática possivelmente será necessária se os bancos de dados do sistema forem danificados.

Regras de nomeação de instância automática

As instâncias automáticas de LocalDB têm um padrão especial para o nome de instância que pertence a um namespace reservado. Isso é necessário para impedir conflitos de nomes com instâncias de LocalDB nomeadas.

O nome da instância automática é o número da versão de linha de base do LocalDB precedido por um único caractere "v". Isso se parece com "v" mais dois números com um ponto entre eles; por exemplo, v11.0 ou V12.00.

Exemplos de nomes de instância automática ilegais:

  • 11.0 (falta o caractere "v" no início)

  • v11 (sem um ponto e o segundo número da versão)

  • v11. (sem o segundo número da versão)

  • v11.0.1.2 (o número de versão tem mais de duas partes)

Instancias de LocalDB nomeadas

As instâncias nomeadas do LocalDB são "privadas"; Uma instância pertence a um único aplicativo responsável por criar e gerenciar a instância. As instâncias de LocalDB nomeadas fornecem isolamento e melhoram o desempenho.

Criação da instância nomeada

O usuário deve criar as instâncias nomeadas explicitamente através da API de gerenciamento de LocalDB ou implicitamente através do arquivo app.config de um aplicativo gerenciado. Um aplicativo gerenciado também pode usar a API.

Cada instância nomeada tem uma versão de LocalDB associada; ou seja, ela indica um conjunto especificado de binários de LocalDB. A versão da instância nomeada é definida durante o processo de criação de instância.

Regras de nomeação de instância nomeada

Um nome de instância LocalDB pode ter até um total de 128 caracteres (o limite é imposto pelo tipo de dados sysname). Essa é uma diferença significativa se comparada aos nomes de instância tradicionais do SQL Server, que são limitados aos nomes NetBIOS de 16 caracteres ASCII. A razão para essa diferença é que o LocalDB trata bancos de dados como arquivos e, portanto, implica semântica baseada em arquivo, portanto, é intuitivo para os usuários terem mais liberdade na escolha de nomes de instância.

Um nome de instância de LocalDB pode conter qualquer caractere Unicode que seja legal no componente de nome de arquivo. Os caracteres ilegais em um componente de nome de arquivo geralmente incluem os seguintes caracteres: caracteres ASCII/Unicode de 1 a 31, bem como aspas ("), menores que (<), maiores que (>), barras verticais (|), backspace (\b), tabulação (\t), dois pontos (:), asterisco (*), ponto de interrogação (?), barra invertida (\) e barra (/). Observe que o caractere nulo (\0) é permitido porque é usado na terminação de cadeias de caracteres; tudo o que aparecer após o primeiro caractere nulo será ignorado.

Observação

A lista de caracteres ilegais possivelmente dependerá do sistema operacional e mudará nas versões futuras.

Os espaços em branco à esquerda e à direita nos nomes de instância serão ignorados e cortados.

Para evitar conflitos de nomenclatura, as instâncias nomeadas do LocalDB não podem ter um nome que siga o padrão de nomenclatura para instâncias automáticas, conforme descrito anteriormente em "Regras de nomenclatura automática de instâncias". Uma tentativa de criar uma instância nomeada com um nome que segue o padrão de nomenclatura de instância automática cria efetivamente uma instância padrão.

Tópicos de referência de LocalDB do SQL Server Express

Cabeçalho e informações de versão de LocalDB do SQL Server Express
Fornece informações do arquivo de cabeçalho e chaves do Registro para localizar a API de instância de LocalDB.

Ferramenta de gerenciamento da linha de comando: SqlLocalDB.exe
Descreve o SqlLocalDB.exe, uma ferramenta para gerenciar instâncias de LocalDB na linha de comando.

Função LocalDBCreateInstance
Descreve a função que cria uma nova instância de LocalDB.

Função LocalDBDeleteInstance
Descreve a função que remove uma instância de LocalDB.

Função LocalDBFormatMessage
Descreve a função que retorna a descrição localizada de um erro de LocalDB.

Função LocalDBGetInstanceInfo
Descreve a função que obtém informações sobre uma instância de LocalDB; por exemplo, se ela existe, as informações da versão, se ela está em execução etc.

Função LocalDBGetInstances
Descreve a função que retorna todas as instância de LocalDB com uma versão especificada.

Função LocalDBGetVersionInfo
Descreve a função que retorna informações sobre uma versão de LocalDB especificada.

Função LocalDBGetVersions
Descreve a função que retorna todas as versões de LocalDB disponíveis em um computador.

Função LocalDBShareInstance
Descreve a função que compartilha uma instância de LocalDB especificada.

Função LocalDBStartInstance
Descreve a função que inicia uma instância de LocalDB especificada.

Função LocalDBStartTracing
Descreve a função que habilitar o rastreamento de API para um usuário.

Função LocalDBStopInstance
Descreve a função que interrompe a execução de uma instância de LocalDB especificada.

Função LocalDBStopTracing
Descreve a função que desabilita o rastramento de API para um usuário.

Função LocalDBUnshareInstance
Descreve a função que interrompe o compartilhamento de uma instância de LocalDB especificada.