sp_attach_single_file_db (Transact-SQL)

Anexa um banco de dados que tem apenas um arquivo de dados para o servidor atual. sp_attach_single_file_db não pode ser usado com vários arquivos de dados.

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Recomendamos usar CREATE DATABASE database_name em vez de FOR ATTACH. Para obter mais informações, consulte CREATE DATABASE (Transact-SQL). Não use este procedimento em um banco de dados replicado.

Observação sobre segurançaObservação sobre segurança

Recomendamos que você não anexe ou restaure bancos de dados de origens desconhecidas ou não confiáveis. Esses bancos de dados podem conter um código mal-intencionado que pode executar código Transact-SQL involuntário ou provocar erros modificando o esquema ou a estrutura física do banco de dados. Antes de usar um banco de dados de uma origem desconhecida ou não confiável, execute DBCC CHECKDB no banco de dados, em um servidor que não seja de produção. Além disso, examine o código, como procedimentos armazenados ou outro código definido pelo usuário, no banco de dados.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_attach_single_file_db [ @dbname= ] 'dbname'
    , [ @physname= ] 'physical_name'

Argumentos

  • [ @dbname= ] 'dbname'
    É o nome do banco de dados a ser anexado ao servidor. O nome deve ser exclusivo. dbname é sysname, com o padrão NULL.

  • [ @physname= ] 'physical_name'
    É o nome físico, incluindo o caminho, do arquivo de banco de dados. physical_name é nvarchar(260), com o padrão NULL.

    ObservaçãoObservação

    Este argumento mapeia para o parâmetro FILENAME da instrução CREATE DATABASE. Para obter mais informações, consulte CREATE DATABASE (Transact-SQL).

    Quando você anexa um banco de dados do SQL Server 2005 que contém arquivos de catálogo de texto completo a uma instância de servidor do SQL Server 2012, os arquivos de catálogo são anexados de seus locais anteriores junto com os outros arquivos de banco de dados, como ocorre no SQL Server 2005. Para obter mais informações, consulte Atualizar pesquisa de texto completo do SQL Server 2005.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

Use o procedimento armazenado sp_attach_single_file_db somente em bancos de dados que tenham sido previamente desanexados do servidor por meio de uma operação sp_detach_db explícita ou em bancos de dados copiados.

sp_attach_single_file_db funciona apenas em bancos de dados que têm um único arquivo de log. Quando sp_attach_single_file_db anexar o banco de dados ao servidor, um novo arquivo de log será criado. Se o banco de dados for somente leitura, o arquivo de log será criado em seu local anterior.

ObservaçãoObservação

Um instantâneo do banco de dados não pode ser desanexado ou anexado.

Não use este procedimento em um banco de dados replicado.

Permissões

Para obter informações sobre como as permissões são tratadas quando um banco de dados é anexado, consulte CREATE DATABASE (Transact-SQL).

Exemplos

O exemplo a seguir desanexa AdventureWorks2012 e, então, anexa um arquivo de AdventureWorks2012 para o servidor atual.

USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2012';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2012', 
    @physname = 
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';

Consulte também

Referência

sp_detach_db (Transact-SQL)

sp_helpfile (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)

Conceitos

Anexar e desanexar bancos de dados (SQL Server)