sp_attach_single_file_db (Transact-SQL)
Collega al server corrente un database che include solo un file di dati. La stored procedure sp_attach_single_file_db non può essere utilizzata con più file di dati.
Importante |
---|
Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. È invece consigliabile utilizzare CREATE DATABASE database_name FOR ATTACH. Per ulteriori informazioni, vedere CREATE DATABASE (Transact-SQL). Non utilizzare questa procedura per database replicati. |
Nota sulla sicurezza |
---|
È consigliabile non 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 inoltre il codice nel database, ad esempio stored procedure o altro codice definito dall'utente. |
Sintassi
sp_attach_single_file_db [ @dbname= ] 'dbname'
, [ @physname= ] 'physical_name'
Argomenti
[ @dbname= ] 'dbname'
Nome del database da collegare al server. Deve essere un nome univoco. dbname è di tipo sysname e il valore predefinito è NULL.[ @physname= ] 'physical_name'
Nome fisico, completo di 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 ulteriori informazioni, vedere CREATE DATABASE (Transact-SQL).
Quando si collega un database di SQL Server 2005 contenente file di cataloghi full-text a un'istanza del server SQL Server 2008 R2, i file di catalogo vengono collegati dal percorso precedente insieme agli altri file del database, come in SQL Server 2005. Per ulteriori informazioni, vedere Aggiornamento della ricerca full-text.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Set di risultati
Nessuno
Osservazioni
Utilizzare sp_attach_single_file_db solo in database precedentemente scollegati dal server tramite un'operazione sp_detach_db esplicita o in database copiati.
sp_attach_single_file_db funziona solo su database contenenti un unico file di log. Se sp_attach_single_file_db collega il database al server, viene compilato un nuovo file di log. Se il database è di sola lettura, il file di log verrà creato nella relativa posizione precedente.
Nota
Non è possibile collegare o scollegare uno snapshot del database.
Non utilizzare questa procedura per database replicati.
Autorizzazioni
Per ulteriori informazioni sulle modalità di gestione delle autorizzazioni durante il collegamento di un database, vedere CREATE DATABASE (Transact-SQL).
Esempi
Nell'esempio seguente viene scollegato il database AdventureWorks2008R2, quindi uno dei file inclusi nel database AdventureWorks2008R2 viene collegato al server corrente.
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';