Compartir a través de


sp_attach_single_file_db (Transact-SQL)

Se aplica a: SQL Server

Asocia una base de datos que es solo un archivo de datos al servidor actual. sp_attach_single_file_db no se puede usar con varios archivos de datos.

Importante

Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Se recomienda utilizar CREATE DATABASE <database_name> FOR ATTACH en su lugar. Para más información, consulte CREATE DATABASE. No use este procedimiento en una base de datos replicada.

No adjunte ni restaure bases de datos de orígenes desconocidos o que no sean de confianza. Es posible que dichas bases de datos contengan código malintencionado que podría ejecutar código de Transact-SQL no deseado o provocar errores al modificar el esquema o la estructura de la base de datos física. Para usar una base de datos desde un origen desconocido o que no sea de confianza, ejecute DBCC CHECKDB en la base de datos de un servidor que no sea de producción y examine también el código, como procedimientos almacenados u otro código definido por el usuario, en la base de datos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_attach_single_file_db
    [ @dbname = ] N'dbname'
    , [ @physname = ] N'physname'
[ ; ]

Argumentos

[ @dbname = ] N'dbname'

Nombre de la base de datos que se va a adjuntar al servidor. @dbname es sysname, sin ningún valor predeterminado.

[ @physname = ] N'physname'

Nombre físico, incluida la ruta de acceso, del archivo de base de datos. @physname es nvarchar(260), sin ningún valor predeterminado.

Este argumento se asigna al FILENAME parámetro de la CREATE DATABASE instrucción . Para más información, consulte CREATE DATABASE.

Nota:

Al adjuntar una base de datos de SQL Server 2005 (9.x) que contiene archivos de catálogo de texto completo en una instancia de servidor más reciente de SQL Server, los archivos de catálogo se adjuntan desde su ubicación anterior junto con los demás archivos de base de datos, igual que en SQL Server 2005 (9.x). Para obtener más información, vea Actualizar la búsqueda de texto completo.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

Use sp_attach_single_file_db solo en las bases de datos que se desasociaron previamente del servidor mediante una operación explícita sp_detach_db o en bases de datos copiadas.

sp_attach_single_file_db funciona solo en bases de datos que tienen un único archivo de registro. Cuando sp_attach_single_file_db adjunta la base de datos al servidor, crea un nuevo archivo de registro. Si la base de datos es de solo lectura, el archivo de registro se crea en su ubicación anterior.

Nota:

No puedes separar ni adjuntar una instantánea de base de datos.

No use este procedimiento en una base de datos replicada.

Permisos

Para obtener información sobre cómo se controlan los permisos cuando se adjunta una base de datos, vea CREATE DATABASE.

Ejemplos

En el ejemplo siguiente se separa AdventureWorks2022 y, después, se adjunta un archivo de AdventureWorks2022 al servidor actual.

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