Condividi tramite


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.

Nota importanteImportante

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare 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 FOR ATTACH. Per ulteriori informazioni, vedere CREATE DATABASE (Transact-SQL). Non utilizzare questa procedura per database replicati.

Nota sulla protezioneNota sulla protezione

È 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.

Icona di collegamento a un argomentoConvenzioni 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. 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, 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 generato 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 AdventureWorks, quindi uno dei file inclusi nel database AdventureWorks viene collegato al server corrente.

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