Compartir a través de


sp_attach_single_file_db (Transact-SQL)

Adjunta al servidor actual una base de datos que tiene un solo archivo de datos. sp_attach_single_file_db no se puede utilizar con varios archivos de datos.

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft 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 obtener más información, consulte CREATE DATABASE (Transact-SQL). No utilice este procedimiento en una base de datos replicada.

Nota de seguridadNota de seguridad

Se recomienda no adjuntar ni restaurar 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 Transact-SQL no deseado o provocar errores al modificar el esquema o la estructura de la base de datos física. Antes de utilizar una base de datos de un origen desconocido o que no sea de confianza, ejecute DBCC CHECKDB en la base de datos en un servidor que no sea de producción y examine el código de la base de datos, como procedimientos almacenados u otro código definido por el usuario.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @dbname= ] 'dbname'
    Es el nombre de la base de datos que se va adjuntar al servidor. El nombre debe ser único. dbname es de tipo sysname y su valor predeterminado es NULL.

  • [ @physname= ] 'physical_name'
    Es el nombre físico, incluida la ruta de acceso, del archivo de base de datos. physical_name es de tipo nvarchar(260) y su valor predeterminado es NULL.

    Nota

    Este argumento se asigna al parámetro FILENAME de la instrucción CREATE DATABASE. Para obtener más información, vea CREATE DATABASE (Transact-SQL).

    Al adjuntar una base de datos de SQL Server 2005 que contiene archivos de catálogo de texto completo a una instancia de servidor de SQL Server 2008 R2, 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. Para obtener más información, vea Actualización de la búsqueda de texto completo.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno

Comentarios

Utilice sp_attach_single_file_db solo en bases de datos que haya separado previamente del servidor con una operación sp_detach_db explícita o en bases de datos copiadas.

sp_attach_single_file_db funciona únicamente en bases de datos que tienen un solo 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

Una instantánea de base de datos no se puede adjuntar ni separar.

No utilice este procedimiento en una base de datos replicada.

Permisos

Para obtener información sobre cómo se administran los permisos cuando se adjunta una base de datos, vea CREATE DATABASE (Transact-SQL).

Ejemplos

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

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