Implantação de Xcopy (SQL Server Express)

Xcopy é um modo simplificado de implantar seus aplicativos e bancos de dados do SQL Server Express. A implantação de Xcopy permite que você copie um novo aplicativo (.exe) e o arquivo de banco de dados (.mdf) para outro computador ou para um local diferente no mesmo computador. Nenhuma configuração adicional é necessária.

Para distribuir o aplicativo a usuários, envie apenas os arquivos .exe e .mdf. Cada usuário pode salvar os arquivos localmente e, com apenas um clique duplo no .exe, iniciar o aplicativo. Se o aplicativo usar replicação, não use a implantação de Xcopy.

Para usar a implantação de Xcopy, o SQL Server Express deve ser instalado no computador de destino e deve ter uma instância em execução. Para obter mais informações, consulte Instâncias de usuário para não administradores.

Quando um aplicativo estabelece uma conexão pela primeira vez a partir de uma instância em execução do SQL Server Express, o SQL Server Express anexa automaticamente um arquivo .mdf. Quando o usuário fecha ou sai do aplicativo, o SQL Server Express desanexa o arquivo .mdf da instância. O recurso Xcopy faz com que o arquivo .mdf seja totalmente portátil. Você pode copiar e mover o arquivo e, ao mesmo tempo, executar várias cópias dele na mesma instância.

Nomenclatura lógica de banco de dados

Ao anexar um banco de dados, o SQL Server Express gera automaticamente um nome lógico para o banco de dados, exceto quando a cadeia de conexão no aplicativo especifica um nome lógico. Esse nome lógico deve ser exclusivo. O SQL Server Express usará a letra de unidade, o nome do diretório e o nome do arquivo de banco de dados como nome lógico. Por exemplo, se o arquivo .mdf estiver no caminho C:\Arquivos de Programas\Meus Aplicativos\Data\MainData.mdf, o SQL Server Express atribuirá um nome lógico de banco de dados que corresponda exatamente ao caminho: C:\Arquivos de Programas\Meus Aplicativos\Data\MainData.mdf.

ObservaçãoObservação

Se a extensão do caminho completo e o nome de arquivo exceder 127 caracteres, o nome lógico do banco de dados será reduzido e prefixado com um GUID. Isso garante um nome lógico exclusivo.

Criação e nomenclatura do arquivo de log

Ao implantar o aplicativo, você deve incluir no Xcopy apenas os arquivos do aplicativo e o arquivo .mdf. O arquivo de log (.ldf) não deve ser incluído. O SQL Server Express irá criar um novo arquivo de log automaticamente ao anexar o banco de dados. O SQL Server Express nomeará o arquivo de log como nome_do_banco_de_dados_log.ldf. Se já existir um arquivo com o mesmo nome no mesmo diretório do arquivo .mdf, será utilizado o arquivo existente.

Limitações ao usar a implantação de Xcopy

Ao usar a implantação de Xcopy em seus aplicativos, alguns recursos do SQL Server Express podem não funcionar conforme se espera. A lista a seguir descreve as limitações que podem ocorrer:

  • Todo código Transact-SQL que contenha nomes lógicos de banco de dados não irá funcionar.

    Como o nome lógico de banco de dados depende do local do arquivo, que mudará em cada Xcopy, todo código que especificar um nome lógico de banco de dados irá falhar.

  • Cenários de replicação não funcionam.

    A replicação requer um nome lógico persistente de banco de dados. Se o aplicativo usar replicação, você não deverá usar a implantação de Xcopy.

Para que o aplicativo funcione com o recurso de implantação de Xcopy do SQL Server Express, certifique-se de que a cadeia de conexão utilizada no aplicativo contenha os parâmetros apropriados:

  • Use o parâmetro data source, mas altere o nome do computador para um ponto (.). ou (local). Também é preciso especificar o nome da instância, a menos que você tenha certeza de que o SQL Server Express sempre esteja instalado em um instância não nomeada.

  • Use o parâmetro initial catalog ou database, mas não defina o parâmetro para um valor.

  • Adicione o parâmetro AttachDBFileName e defina-o com o nome e o caminho do arquivo .mdf. Attachdbfilename é uma opção de cadeia de conexão do SqlClient que permite anexar bancos de dados em tempo de execução e gerar o nome desse banco de dados automaticamente. A palavra-chave DataDirectory permite que você especifique o caminho relativo de um arquivo de banco de dados. O Attachdbfilename também ajuda na portabilidade do banco de dados. Para obter mais informações sobre Attachdbfilename, consulte a documentação de Visual Studio 2005.

A cadeia de conexão a seguir irá anexar o arquivo de banco de dados MyDb.mdf, que se encontra na mesma pasta do executável do aplicativo, à instância do SQL Server Express em execução no computador local.

@"Data Source='.\SQLExpress'; Initial Catalog=; Integrated 
Security=true; AttachDBFileName='" |DataDirectory| + 
@"\MyDb.mdf'"

Para implantar um aplicativo para usuários que não têm direitos de usuário administrativo na instância do SQL Server Express, você deve especificar o seguinte:

  • Os parâmetros na cadeia de conexão para a implantação de Xcopy.

  • O parâmetro user instance.

Para obter mais informações, consulte Instâncias de usuário para não administradores.

Contribuições da comunidade

ADICIONAR
Mostrar: