SQL Server 2016 Express LocalDBSQL Server 2016 Express LocalDB

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

O LocalDB do Microsoft SQL Server 2016 Express é um recurso do SQL Server Express voltado para desenvolvedores.Microsoft SQL Server 2016 Express LocalDB is a feature of SQL Server Express targeted to developers. Ele está disponível no SQL Server 2016 Express with Advanced Services.It is available on SQL Server 2016 Express with Advanced Services.

A instalação doLocalDB copia um conjunto mínimo de arquivos necessários para iniciar o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine.LocalDB installation copies a minimal set of files necessary to start the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine. Depois do LocalDB ser instalado, você poderá iniciar uma conexão usando uma cadeia de conexão especial.Once LocalDB is installed, you can initiate a connection using a special connection string. Ao conectar, a infraestrutura necessária do SQL ServerSQL Server é criada e iniciada automaticamente, permitindo que o aplicativo use o banco de dados sem tarefas de configuração complexas.When connecting, the necessary SQL ServerSQL Server infrastructure is automatically created and started, enabling the application to use the database without complex configuration tasks. O Developer Tools pode fornecer aos desenvolvedores um Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine que permite que eles gravem e testem o código Transact-SQLTransact-SQL sem precisar gerenciar uma instância de servidor inteira do SQL ServerSQL Server.Developer Tools can provide developers with a Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine that lets them write and test Transact-SQLTransact-SQL code without having to manage a full server instance of SQL ServerSQL Server.

Experimente!Try it out!

  • Para baixar e instalar o SQL Server 2016 Express, acesse Downloads do SQL Server.To download and install SQL Server 2016 Express, go to SQL Server downloads. LocalDB é um recurso selecionado durante a instalação e que está disponível durante o download da mídia.LocalDB is a feature you select during installation, and is available when you download the media. Se você baixar a mídia, escolha Express Advanced ou o pacote LocalDB por meio do Instalador do Visual Studio.If you download the media, either choose Express Advanced or the LocalDB package.through the Visual Studio Installer. No Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB como parte da carga de trabalho do Desenvolvimento para desktop com .NET ou como um componente individual.In the Visual Studio Installer, you can install SQL Server Express LocalDB as part of the .NET desktop development workload or as an individual component.

    Dica

    Você pode instalar o LocalDB como parte do Visual Studio 2017.You can also install LocalDB as part of Visual Studio 2017. Durante a instalação do Visual Studio, selecione a carga de trabalho do Desenvolvimento para desktop com .NET, que inclui o SQL Server Express LocalDB.During Visual Studio installation, select the .NET desktop development workload, which includes SQL Server Express LocalDB.

  • Tem uma conta do Azure?Have an Azure account? Então, clique aqui para executar uma máquina virtual com o SQL Server 2016 (13.x)SQL Server 2016 (13.x) já instalado.Then go here to spin up a Virtual Machine with SQL Server 2016 (13.x)SQL Server 2016 (13.x) already installed.

Instalar o LocalDBInstall LocalDB

Instale o LocalDB por meio do assistente de instalação ou usando o programa SqlLocalDB.msi.Install LocalDB through the installation wizard or by using the SqlLocalDB.msi program. OLocalDB é uma opção na instalação do SQL Server 2016 ExpressSQL Server 2016 Express.LocalDB is an option when installing SQL Server 2016 ExpressSQL Server 2016 Express.

Selecione LocalDB na página Seleção de Recursos/Recursos Compartilhados durante a instalação.Select LocalDB on the Feature Selection/Shared Features page during installation. Pode haver somente uma instalação dos arquivos binários do LocalDB para cada versão principal do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine .There can be only one installation of the LocalDB binary files for each major Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine version. Vários processos do Mecanismo de Banco de DadosDatabase Engine podem ser iniciados e todos usarão os mesmos binários.Multiple Mecanismo de Banco de DadosDatabase Engine processes can be started and will all use the same binaries. Uma instância do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine iniciada como o LocalDB tem as mesmas limitações do SQL Server ExpressSQL Server Express.An instance of the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine started as the LocalDB has the same limitations as SQL Server ExpressSQL Server Express.

Uma instância do SQL Server ExpressSQL Server Express LocalDB é gerenciada com o utilitário SqlLocalDB.exe .An instance of SQL Server ExpressSQL Server Express LocalDB is managed by using the SqlLocalDB.exe utility. SQL Server ExpressSQL Server Express LocalDB deve ser usado no lugar do recurso de instância do usuário SQL Server ExpressSQL Server Express que foi preterido.LocalDB should be used in place of the SQL Server ExpressSQL Server Express user instance feature which is deprecated.

DescriçãoDescription

O programa de instalação do LocalDB usa o programa SqlLocalDB.msi para instalar os arquivos necessários no computador.The LocalDB setup program uses the SqlLocalDB.msi program to install the necessary files on the computer. Uma vez instalado, o LocalDB torna-se uma instância do SQL Server ExpressSQL Server Express que pode criar e abrir bancos de dados do SQL ServerSQL Server .Once installed, LocalDB is an instance of SQL Server ExpressSQL Server Express that can create and open SQL ServerSQL Server databases. Os arquivos de banco de dados do sistema para o banco de dados são armazenados no caminho de AppData local dos usuários, que normalmente é oculto.The system database files for the database are stored in the users' local AppData path which is normally hidden. Por exemplo **C:\Usuários\<usuário>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\*.For example **C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Os arquivos de banco de dados do usuário são armazenados onde o usuário determina, normalmente em algum lugar da pasta **C:\Usuários\<usuário>\Documents\.User database files are stored where the user designates, typically somewhere in the **C:\Users\<user>\Documents\* folder.

Para obter mais informações sobre como incluir o LocalDB em um aplicativo, consulte a documentação do Visual StudioVisual Studio Visão geral da arquitetura lógica, Passo a passo: criando um banco de dados LocalDB do SQL Server e Passo a passo: conectando-se a dados no banco de dados LocalDB do SQL Server (Windows Forms).For more information about including LocalDB in an application, see the Visual StudioVisual Studio documentation Local Data Overview, Walkthrough: Creating a SQL Server LocalDB Database, and Walkthrough: Connecting to Data in a SQL Server LocalDB Database (Windows Forms).

Para obter mais informações sobre a API LocalDB, confira Referência de LocalDB do SQL Server Express.For more information about the LocalDB API, see SQL Server Express LocalDB Reference.

O utilitário SqlLocalDb pode criar novas instâncias do LocalDB, iniciar e interromper uma instância do LocalDB, e contém opções para ajudar a gerenciar o LocalDB.The SqlLocalDb utility can create new instances of LocalDB, start and stop an instance of LocalDB, and includes options to help you manage LocalDB. Para obter mais informações sobre o utilitário SqlLocalDb, consulte Utilitário SqlLocalDB.For more information about the SqlLocalDb utility, see SqlLocalDB Utility.

A ordenação de instância para LocalDB é definida como SQL_Latin1_General_CP1_CI_AS e não pode ser alterada.The instance collation for LocalDB is set to SQL_Latin1_General_CP1_CI_AS and cannot be changed. Normalmente há suporte para ordenações nos níveis de banco de dados, de coluna e de expressão.Database-level, column-level, and expression-level collations are supported normally. Os bancos de dados independentes seguem os metadados e as regras de ordenações tempdb definidas por Ordenações de banco de dados independentes.Contained databases follow the metadata and tempdb collations rules defined by Contained Database Collations.

RestrictionsRestrictions

OLocalDB não pode ser um assinante de replicação de mesclagem.LocalDB cannot be a merge replication subscriber.

OLocalDB não dá suporte a FILESTREAM.LocalDB does not support FILESTREAM.

OLocalDB só permite filas locais para Service Broker.LocalDB only allows local queues for Service Broker.

Uma instância do LocalDB pertencente às contas internas, como NT AUTHORITY\SYSTEM, pode ter problemas de capacidade de gerenciamento devido ao redirecionamento do sistema de arquivos do Windows. Em vez disso, use uma conta normal do Windows como o proprietário.An instance of LocalDB owned by the built-in accounts such as NT AUTHORITY\SYSTEM can have manageability issues due to windows file system redirection; Instead use a normal windows account as the owner.

Instâncias automáticas e nomeadasAutomatic and Named Instances

OLocalDB oferece suporte a dois tipos de instâncias: instâncias automáticas e instâncias nomeadas.LocalDB supports two kinds of instances: Automatic instances and named instances.

  • As instâncias automáticas do LocalDB são públicas.Automatic instances of LocalDB are public. Elas são criadas e gerenciadas automaticamente para o usuário e podem ser usadas por qualquer aplicativo.They are created and managed automatically for the user and can be used by any application. Existe uma instância automática do LocalDB para cada versão do LocalDB instalada no computador do usuário.One automatic instance of LocalDB exists for every version of LocalDB installed on the user's computer. As instâncias automáticas do LocalDB fornecem gerenciamento de instância contínuo.Automatic instances of LocalDB provide seamless instance management. Não há necessidade de criar a instância; assim é o suficiente.There is no need to create the instance; it just works. Isso facilita a instalação e migração do aplicativo para um computador diferente.This allows for easy application installation and migration to a different computer. Se o computador de destino tiver a versão especificada do LocalDB instalada, a instância automática do LocalDB para essa versão também estará disponível no computador de destino.If the target machine has the specified version of LocalDB installed, the automatic instance of LocalDB for that version is available on the target machine as well. As instâncias automáticas do LocalDB têm um padrão especial para o nome de instância que pertence a um namespace reservado.Automatic instances of LocalDB have a special pattern for the instance name that belongs to a reserved namespace. Isso evita conflitos de nomes com instâncias nomeadas do LocalDB.This prevents name conflicts with named instances of LocalDB. O nome da instância automática é MSSQLLocalDB.The name for the automatic instance is MSSQLLocalDB.

  • As instâncias nomeadas do LocalDB são privadas.Named instances of LocalDB are private. Elas pertencem a um único aplicativo, que é responsável por criar e gerenciar a instância.They are owned by a single application that is responsible for creating and managing the instance. As instâncias nomeadas fornecem isolamento de outras instâncias e melhoram o desempenho reduzindo a contenção de recursos com outros usuários de banco de dados.Named instances provide isolation from other instances and can improve performance by reducing resource contention with other database users. As instâncias nomeadas devem ser criadas explicitamente pelo usuário por meio da API de gerenciamento do LocalDB ou implicitamente por meio do arquivo app.config para um aplicativo gerenciado (embora o aplicativo gerenciado também possa usar a API, se desejado).Named instances must be created explicitly by the user through the LocalDB management API or implicitly via the app.config file for a managed application (although managed application may also use the API, if desired). Cada instância nomeada do LocalDB tem uma versão associada do LocalDB que aponta para o conjunto respectivo de binários do LocalDB .Each named instance of LocalDB has an associated LocalDB version that points to the respective set of LocalDB binaries. O nome da instância do LocalDB é o tipo de dados sysname e pode ter até 128 caracteres.The instance name of a LocalDB is sysname data type and can have up to 128 characters. (Isso difere das instâncias nomeadas normais do SQL ServerSQL Server, que limitam os nomes a nomes NetBIOS normais de 16 caracteres ASCII.) O nome de uma instância do LocalDB pode conter qualquer caractere Unicode legal em um nome de arquivo.(This differs from regular named instances of SQL ServerSQL Server, which limits names to regular NetBIOS names of 16 ASCII chars.) The name of an instance of LocalDB can contain any Unicode characters that are legal within a filename. Uma instância nomeada que usa um nome de instância automático torna-se uma instância automática.A named instance that uses an automatic instance name becomes an automatic instance.

    Usuários diferentes de um computador podem ter instâncias com o mesmo nome.Different users of a computer can have instances with the same name. Cada instância é um processo diferente executado como um usuário diferente.Each instance is a different processes running as a different user.

Instâncias compartilhadas do LocalDBShared Instances of LocalDB

Para oferecer suporte a cenários onde vários usuários do computador precisam se conectar a uma única instância do LocalDB, o LocalDB oferece suporte ao compartilhamento de instâncias.To support scenarios where multiple users of the computer need to connect to a single instance of LocalDB, LocalDB supports instance sharing. O proprietário de uma instância pode optar por permitir que os outros usuários do computador se conectem à sua instância.An instance owner can choose to allow the other users on the computer to connect to his instance. As instâncias automáticas e nomeadas do LocalDB podem ser compartilhadas.Both automatic and named instances of LocalDB can be shared. Para compartilhar uma instância do LocalDB , o usuário seleciona um nome compartilhado (alias) para isso.To share an instance of LocalDB a user selects a shared name (alias) for it. Como o nome compartilhado fica visível para todos os usuários do computador, ele deve ser exclusivo no computador.Because the shared name is visible to all users of the computer, this shared name must be unique on the computer. O nome compartilhado de uma instância do LocalDB tem o mesmo formato da instância nomeada do LocalDB.The shared name for an instance of LocalDB has the same format as the named instance of LocalDB.

Somente um administrador no computador pode criar uma instância compartilhada do LocalDB.Only an administrator on the computer can create a shared instance of LocalDB. Uma instância compartilhada do LocalDB pode ser descompartilhada por um administrador ou pelo proprietário da instância compartilhada do LocalDB.A shared instance of LocalDB can be unshared by an administrator or by the owner of the shared instance of LocalDB. Para compartilhar e descompartilhar uma instância do LocalDB, use os métodos LocalDBShareInstance e LocalDBUnShareInstance da API do LocalDB ou as opções de compartilhamento e descompartilhamento do utilitário SqlLocalDb.To share and unshared an instance of LocalDB, use the LocalDBShareInstance and LocalDBUnShareInstance methods of the LocalDB API, or the share and unshared options of the SqlLocalDb utility.

Iniciando o LocalDB e conectando-se ao LocalDBStarting LocalDB and Connecting to LocalDB

Conectando-se à instância automáticaConnecting to the Automatic Instance

A maneira mais fácil de usar o LocalDB é conectar-se à instância automática pertencente ao usuário atual usando a cadeia de conexão "Server=(localdb)\MSSQLLocalDB;Integrated Security=true".The easiest way to use LocalDB is to connect to the automatic instance owned by the current user by using the connection string "Server=(localdb)\MSSQLLocalDB;Integrated Security=true". Para se conectar a um banco de dados específico usando o nome do arquivo, conecte-se usando uma cadeia de conexão semelhante a "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf".To connect to a specific database by using the file name, connect using a connection string similar to "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf".

Observação

A primeira vez que o usuário de um computador tenta conectar-se ao LocalDB, a instância automática deve ser criada e iniciada.The first time a user on a computer tries to connect to LocalDB, the automatic instance must be both created and started. A tempo adicional para a criação da instância pode causar a falha da tentativa de conexão com uma mensagem de tempo esgotado.The extra time for the instance to be created can cause the connection attempt to fail with a timeout message. Quando isso acontecer, espere alguns segundos para deixar o processo de criação terminar e conecte novamente.When this happens, wait a few seconds to let the creation process complete, and then connect again.

Criando e conectando-se a instâncias nomeadasCreating and Connecting to a Named Instances

Além da instância automática, o LocalDB também oferece suporte a instâncias nomeadas.In addition to the automatic instance, LocalDB also supports named instances. Use o programa SqlLocalDB.exe para criar, iniciar e interromper uma instância nomeada do LocalDB.Use the SqlLocalDB.exe program to create, start, and stop an named instance of LocalDB. Para obter mais informações sobre o SqlLocalDB.exe, consulte Utilitário SqlLocalDB.For more information about SqlLocalDB.exe, see SqlLocalDB Utility.

REM Create an instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1  
REM Start the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1  
REM Gather information about the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1  

A última linha acima, retorna informações semelhantes a estas:The last line above, returns information similar to the following.

NomeName "LocalDBApp1""LocalDBApp1"
VersãoVersion <Current Version><Current Version>
Nome compartilhadoShared name """"
ProprietárioOwner “<Your Windows User>”"<Your Windows User>"
Criar automaticamenteAuto create nãoNo
EstadoState executandorunning
Hora da última inicializaçãoLast start time <Date and Time><Date and Time>
Nome do pipe da instânciaInstance pipe name np:\\.\pipe\LOCALDB#F365A78E\tsql\querynp:\\.\pipe\LOCALDB#F365A78E\tsql\query

Observação

Se o aplicativo usa uma versão do .NET anterior à 4.0.2, conecte-se diretamente ao pipe nomeado do LocalDB.If your application uses a version of .NET before 4.0.2 you must connect directly to the named pipe of the LocalDB. O valor do nome do pipe da Instância é o pipe nomeado que a instância do LocalDB está ouvindo.The Instance pipe name value is the named pipe that the instance of LocalDB is listening on. A parte do nome do pipe da instância após LOCALDB# mudará sempre que a instância do LocalDB for iniciada.The portion of the Instance pipe name after LOCALDB# will change each time the instance of LocalDB is started. Para conectar-se à instância do LocalDB usando o SQL Server Management StudioSQL Server Management Studio, digite o nome do pipe da instância na caixa Nome do servidor da caixa de diálogo Conectar-se a Mecanismo de Banco de DadosDatabase Engine.To connect to the instance of LocalDB by using SQL Server Management StudioSQL Server Management Studio, type the Instance pipe name in the Server name box of the Connect to Mecanismo de Banco de DadosDatabase Engine dialog box. Em seu programa personalizado, você pode estabelecer uma conexão com a instância do LocalDB usando uma cadeia de conexão semelhante a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");From your custom program you can establish connection to the instance of LocalDB using a connection string similar to SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Conectando-se a uma instância compartilhada do LocalDBConnecting to a Shared Instance of LocalDB

Para conectar-se a uma instância compartilhada do LocalDB adicione .\ (ponto + barra invertida) à cadeia de conexão para fazer referência ao namespace reservado para instâncias compartilhadas.To connect to a shared instance of LocalDB add .\ (dot + backslash) to the connection string to reference the namespace reserved for shared instances. Por exemplo, para conectar-se a uma instância compartilhada do LocalDB denominada AppData , use uma cadeia de conexão como (localdb)\.\AppData como parte da cadeia de conexão.For example, to connect to a shared instance of LocalDB named AppData use a connection string such as (localdb)\.\AppData as part of the connection string. Um usuário que se conecta a uma instância compartilhada do LocalDB que não pertence a ele deve ter uma Autenticação do Windows ou um logon de Autenticação do SQL ServerSQL Server .A user connecting to a shared instance of LocalDB that they do not own must have a Windows Authentication or SQL ServerSQL Server Authentication login.

Solução de problemasTroubleshooting

Para obter informações sobre como solucionar problemas do LocalDB, consulte Solucionando problemas do SQL Server 2012 Express LocalDB.For information about troubleshooting LocalDB, see Troubleshooting SQL Server 2012 Express LocalDB.

PermissõesPermissions

Uma instância do SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB é uma instância criada por um usuário para o seu próprio uso.An instance of SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB is an instance created by a user for their use. Qualquer usuário no computador pode criar um banco de dados usando uma instância do LocalDB, armazenando arquivos sob o seu perfil do usuário e executando o processo sob suas credenciais.Any user on the computer can create a database using an instance of LocalDB, storing files under their user profile and running the process under their credentials. Por padrão, o acesso para a instância de LocalDB é limitado a seu proprietário.By default, access to the instance of LocalDB is limited to its owner. Os dados contidos no LocalDB são protegidos pelo acesso de sistema de arquivos aos arquivos de banco de dados.The data contained in the LocalDB is protected by file system access to the database files. Se os arquivos de banco de dados do usuário estiverem armazenados em um local compartilhado, o banco de dados poderá ser aberto por qualquer pessoa com acesso de sistema de arquivos ao local, usando uma instância de LocalDB de sua propriedade.If user database files are stored in a shared location, the database can be opened by anyone with file system access to that location by using an instance of LocalDB that they own. Se os arquivos de banco de dados estiverem em um local protegido, como a pasta de dados de usuários, somente esse usuário e os administradores com acesso a essa pasta poderão abrir o banco de dados.If the database files are in a protected location, such as the users data folder, only that user, and any administrators with access to that folder, can open the database. Os arquivos do LocalDB somente podem ser abertos por uma instância do LocalDB de cada vez.The LocalDB files can only be opened by one instance of LocalDB at a time.

Observação

O LocalDB sempre é executado sob o contexto de segurança de usuários, ou seja, o LocalDB nunca é executado com credenciais do grupo de Administradores local.LocalDB always runs under the users security context; that is, LocalDB never runs with credentials from the local Administrator's group. Isto significa que todos os arquivos de banco de dados usados por uma instância do LocalDB devem estar acessíveis usando a conta de Windows do usuário proprietário, sem considerar a associação no grupo de Administradores local.This means that all database files used by a LocalDB instance must be accessible using the owning user's Windows account, without considering membership in the local Administrators group.

Consulte TambémSee Also

Utilitário SqlLocalDBSqlLocalDB Utility