sp_attach_single_file_db (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate)

Collega al server corrente un database che include solo un file di dati. non è possibile usare sp_attach_single_file_db con più file di dati.

Importante

Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. È invece consigliabile utilizzare CREATE DATABASE database_name per l'associazione. Per alte informazioni, vedere CREATE DATABASE (SQL Server Transact-SQL). Non utilizzare questa procedura per database replicati.

Importante

È consigliabile evitare di collegare o ripristinare database provenienti da origini sconosciute o non attendibili. Tali database possono contenere codice dannoso che potrebbe eseguire codice Transact-SQL indesiderato o causare errori modificando lo schema o la struttura fisica di database. Prima di utilizzare un database da un'origine sconosciuta o non attendibile, eseguire DBCC CHECKDB sul database in un server non di produzione ed esaminare il codice contenuto nel database, ad esempio le stored procedure o altro codice definito dall'utente.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

[ @dbname = ] 'dbname' Nome del database da collegare al server. Il nome deve essere univoco. dbname è di tipo sysname e il valore predefinito è null.

[ @physname = ] 'physical_name' Nome fisico, incluso il percorso, del file di database. physical_name è di tipo nvarchar (260) e il valore predefinito è null.

Nota

Questo argomento esegue il mapping al parametro FILENAME dell'istruzione CREATE DATABASE. Per alte informazioni, vedere CREATE DATABASE (SQL Server Transact-SQL).

Quando si collega un database di SQL Server 2005 (9.x) contenente file di cataloghi full-text in un'istanza del server di SQL Server 2019 (15.x) , i file di catalogo vengono collegati dal percorso precedente insieme agli altri file del database, come in SQL Server 2005 (9.x). Per altre informazioni, vedere Aggiornamento della ricerca full-text.

Valori del codice restituito

0 (operazione completata) o 1 (operazione non riuscita)

Set di risultati

nessuno

Osservazioni

Utilizzare sp_attach_single_file_db solo nei database precedentemente scollegati dal server utilizzando un'operazione di sp_detach_db esplicita o nei database copiati.

sp_attach_single_file_db funziona solo nei database che dispongono di un unico file di log. Quando sp_attach_single_file_db collega il database al server, compila un nuovo file di log. Se il database è di sola lettura, il file di log verrà creato nella relativa posizione precedente.

Nota

Non è possibile scollegare o collegare uno snapshot del database.

Non utilizzare questa procedura per database replicati.

Autorizzazioni

Per informazioni sul modo in cui vengono gestite le autorizzazioni quando viene collegato un database, vedere create database (SQL Server)Transact-SQL .

Esempio

Nell'esempio seguente viene scollegato il database AdventureWorks2012, quindi uno dei file inclusi nel database AdventureWorks2012 viene collegato al server corrente.

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

Vedere anche

Collegamento e scollegamento di un database (SQL Server)
sp_detach_db ()Transact-SQL
sp_helpfile ()Transact-SQL
Stored procedure di sistema (Transact-SQL)