sp_attach_single_file_db (Transact-SQL)sp_attach_single_file_db (Transact-SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Anexa um banco de dados que tem apenas um arquivo de dados para o servidor atual.Attaches a database that has only one data file to the current server. sp_attach_single_file_db não pode ser usado com vários arquivos de dados.sp_attach_single_file_db cannot be used with multiple data files.

Importante

Este recurso está em modo de manutenção e talvez seja removido em uma versão futura do Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. É recomendável que você use CREATE DATABASE database_name FOR ATTACH em vez disso.We recommend that you use CREATE DATABASE database_name FOR ATTACH instead. Para obter mais informações, consulte CREATE DATABASE (SQL Server Transact-SQL).For more information, see CREATE DATABASE (SQL Server Transact-SQL). Não use este procedimento em um banco de dados replicado.Do not use this procedure on a replicated database.

Importante

Não é recomendável anexar ou restaurar bancos de dados de origem desconhecida ou não confiável.We recommend that you do not attach or restore databases from unknown or untrusted sources. Esses bancos de dados podem conter um código mal-intencionado que pode executar um código Transact-SQLTransact-SQL inesperado ou provocar erros modificando o esquema ou a estrutura física do banco de dados.Such databases could contain malicious code that might execute unintended Transact-SQLTransact-SQL code or cause errors by modifying the schema or the physical database structure. Antes de usar um banco de dados de 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.Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server and also examine the code, such as stored procedures or other user-defined code, in the database.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

[ @dbname = ] 'dbname' É o nome do banco de dados a ser anexado ao servidor.[ @dbname = ] 'dbname' Is the name of the database to be attached to the server. O nome deve ser exclusivo.The name must be unique. DBName está sysname, com um padrão NULL.dbname is sysname, with a default of NULL.

[ @physname = ] 'physical_name' É o nome físico, incluindo o caminho, do arquivo de banco de dados.[ @physname = ] 'physical_name' Is the physical name, including path, of the database file. physical_name está nvarchar (260) , com um padrão NULL.physical_name is nvarchar(260), with a default of NULL.

Observação

Este argumento mapeia para o parâmetro FILENAME da instrução CREATE DATABASE.This argument maps to the FILENAME parameter of the CREATE DATABASE statement. Para obter mais informações, consulte CREATE DATABASE (SQL Server Transact-SQL).For more information, see CREATE DATABASE (SQL Server Transact-SQL).

Quando você anexa um banco de dados do SQL Server 2005 (9.x)SQL Server 2005 (9.x) que contém arquivos de catálogo de texto completo a uma instância de servidor do SQL Server 2019 (15.x)SQL Server 2019 (15.x) , os arquivos de catálogo são anexados de seus locais anteriores junto com os outros arquivos de banco de dados, assim como ocorre no SQL Server 2005 (9.x)SQL Server 2005 (9.x).When you attach a SQL Server 2005 (9.x)SQL Server 2005 (9.x) database that contains full-text catalog files onto a SQL Server 2019 (15.x)SQL Server 2019 (15.x) server instance, the catalog files are attached from their previous location along with the other database files, the same as in SQL Server 2005 (9.x)SQL Server 2005 (9.x). Para obter mais informações, veja Atualizar pesquisa de texto completo.For more information, see Upgrade Full-Text Search.

Valores do código de retornoReturn Code Values

0 (êxito) ou 1 (falha)0 (success) or 1 (failure)

Conjuntos de resultadosResult Sets

NenhumNone

ComentáriosRemarks

Use sp_attach_single_file_db somente em bancos de dados que tenham sido previamente desanexados do servidor usando um explícito sp_detach_db operação ou em bancos de dados copiados.Use sp_attach_single_file_db only on databases that were previously detached from the server by using an explicit sp_detach_db operation or on copied databases.

sp_attach_single_file_db funciona somente em bancos de dados com um único arquivo de log.sp_attach_single_file_db works only on databases that have a single log file. Quando sp_attach_single_file_db anexa o banco de dados para o servidor, ele cria um novo arquivo de log.When sp_attach_single_file_db attaches the database to the server, it builds a new log file. Se o banco de dados for somente leitura, o arquivo de log será criado em seu local anterior.If the database is read-only, the log file is built in its previous location.

Observação

Um instantâneo do banco de dados não pode ser desanexado ou anexado.A database snapshot cannot be detached or attached.

Não use este procedimento em um banco de dados replicado.Do not use this procedure on a replicated database.

PermissõesPermissions

Para obter informações sobre como as permissões são tratadas quando um banco de dados é anexado, consulte criar banco de dados (SQL Server Transact-SQL).For information about how permissions are handled when a database is attached, see CREATE DATABASE (SQL Server Transact-SQL).

ExemplosExamples

O exemplo a seguir desanexa AdventureWorks2012AdventureWorks2012 e, então, anexa um arquivo de AdventureWorks2012AdventureWorks2012 para o servidor atual.The following example detaches AdventureWorks2012AdventureWorks2012 and then attaches one file from AdventureWorks2012AdventureWorks2012 to the current server.

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\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';  

Consulte tambémSee Also

Anexar e desanexar bancos de dados (SQL Server) Database Detach and Attach (SQL Server)
sp_detach_db (Transact-SQL) sp_detach_db (Transact-SQL)
sp_helpfile (Transact-SQL) sp_helpfile (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)System Stored Procedures (Transact-SQL)