Condividi tramite


sp_attach_single_file_db (Transact-SQL)

Si applica a: SQL Server

Collega un database che è un solo file di dati al server corrente. sp_attach_single_file_db non può essere usato con più file di dati.

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. È consigliabile utilizzare CREATE DATABASE <database_name> FOR ATTACH in alternativa. Per altre informazioni, vedere CREATE DATABASE. Non usare questa procedura in un database replicato.

Non collegare o ripristinare database 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 del 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.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_attach_single_file_db
    [ @dbname = ] N'dbname'
    , [ @physname = ] N'physname'
[ ; ]

Argomenti

[ @dbname = ] N'dbname'

Nome del database da collegare al server. @dbname è sysname, senza impostazione predefinita.

[ @physname = ] N'physname'

Nome fisico, incluso il percorso, del file di database. @physname è nvarchar(260), senza impostazione predefinita.

Questo argomento esegue il FILENAME mapping al parametro dell'istruzione CREATE DATABASE . Per altre informazioni, vedere CREATE DATABASE.

Nota

Quando si collega un database di SQL Server 2005 (9.x) che contiene file di catalogo full-text in un'istanza più recente del server di SQL Server, i file di catalogo vengono allegati dal percorso precedente insieme agli altri file di database, come in SQL Server 2005 (9.x). Per altre informazioni, vedere Aggiornamento della ricerca full-text.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

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

sp_attach_single_file_db funziona solo nei database con un singolo 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 usare questa procedura in un database replicato.

Autorizzazioni

Per informazioni sulla gestione delle autorizzazioni quando un database è collegato, vedere CREATE DATABASE.

Esempi

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

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