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