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';