sp_attach_db (Transact-SQL)
Data aggiornamento: 12 dicembre 2006
Collega un database a un server.
![]() |
---|
Questa funzionalità verrà rimossa in 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). |
[!NOTA] Per generare nuovamente più file di log quando uno o più di essi si trovano in una nuova posizione, utilizzare CREATE DATABASE database_name FOR ATTACH_REBUILD_LOG.
![]() |
---|
È consigliabile evitare di collegare o ripristinare database provenienti da origini sconosciute o non attendibili. Questi database potrebbero contenere malware che può 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. |
Convenzioni della sintassi Transact-SQL
Sintassi
sp_attach_db [ @dbname= ] 'dbname'
, [ @filename1= ] 'filename_n' [ ,...16 ]
Argomenti
- [ @dbname= ] **'**dbnam '
Nome del database da collegare al server. Deve essere un nome univoco. dbname è di tipo sysname e il valore predefinito è NULL.
[ @filename1= ] 'filename_n'
Nome fisico, completo di percorso, di un file di database. filename_n è di tipo nvarchar(260) e il valore predefinito è NULL. È possibile specificare un massimo di 16 nomi di file. I nomi dei parametri sono numerati a partire da @filename1 e vengono incrementati fino a @filename16. L'elenco dei nomi di file deve includere almeno il file primario, il quale contiene le tabelle di sistema che fanno riferimento ad altri file del database. Tale elenco deve includere inoltre tutti i file spostati dopo lo scollegamento del database.[!NOTA] Questo argomento esegue il mapping al parametro FILENAME dell'istruzione CREATE DATABASE. Per ulteriori informazioni, vedere CREATE DATABASE (Transact-SQL).
Nel Motore di database di SQL Server 2005 tutti i file full-text che fanno parte del database di cui si esegue il collegamento verranno collegati al database. Per indicare un nuovo percorso del catalogo full-text, è possibile specificare il file del catalogo immettendo un nome di directory senza un nome di file. Per ulteriori informazioni, vedere Collegamento e scollegamento di cataloghi full-text.
[!NOTA] Non è possibile collegare un catalogo full-text alla directory principale.
Set di risultati
Nessuno
Osservazioni
La stored procedure sp_attach_db deve essere eseguita solo in database che sono stati precedentemente scollegati dal server di database tramite un'operazione sp_detach_db esplicita o in database copiati. Se è necessario specificare più di 16 file, utilizzare CREATE DATABASE database_name FOR ATTACH oppure CREATE DATABASE database_name FOR_ATTACH_REBUILD_LOG. Per ulteriori informazioni, vedere CREATE DATABASE (Transact-SQL).
Si presuppone che i file non specificati siano memorizzati nell'ultima posizione conosciuta. Per utilizzare un file in una posizione diversa, è necessario specificare la nuova posizione.
Un database creato mediante una versione più recente di SQL Server non può essere collegato alle versioni precedenti.
[!NOTA] Non è possibile scollegare o collegare uno snapshot del database.
Quando si collega un database replicato copiato anziché scollegato, è necessario considerare quanto segue:
- Se si collega il database alla stessa istanza del server e alla stessa versione del database originale, non sono necessari passaggi aggiuntivi.
- Se si collega il database alla stessa istanza del server ma si utilizza una versione aggiornata, dopo il completamento dell'operazione di collegamento è necessario eseguire sp_vupgrade_replication per aggiornare la replica.
- Se si collega il database a un'istanza del server diversa, indipendentemente dalla versione, dopo il completamento dell'operazione di collegamento è necessario eseguire sp_removedbreplication per rimuovere la replica.
Autorizzazioni
Per informazioni sulla modalità di gestione delle autorizzazioni quando viene collegato un database, vedere CREATE DATABASE (Transact-SQL).
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Esempi
Nell'esempio seguente vengono collegati file da AdventureWorks
al server corrente.
EXEC sp_attach_db @dbname = N'AdventureWorks',
@filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf',
@filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_log.ldf';
Vedere anche
Riferimento
sp_detach_db (Transact-SQL)
sp_helpfile (Transact-SQL)
sp_removedbreplication (Transact-SQL)
Stored procedure di sistema (Transact-SQL)
Altre risorse
Scollegamento e collegamento di database
Protezione dei dati e dei file di log
Collegamento e scollegamento di cataloghi full-text
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
12 dicembre 2006 |
|
5 dicembre 2005 |
|