Distribuzione tramite Xcopy (SQL Server Express)

Xcopy rappresenta una modalità semplificata di distribuire applicazioni e database SQL Server Express. La distribuzione di Xcopy consente di copiare una nuova applicazione (.exe) e il file di database (.mdf) a un altro computer o a un percorso diverso nello stesso computer. Non è richiesta alcuna configurazione aggiuntiva.

Per distribuire l'applicazione agli utenti, è sufficiente inviare i file con estensione exe e mdf. I file possono essere salvati localmente da qualsiasi utente e per avviare l'applicazione è sufficiente fare doppio clic sul file exe. Se l'applicazione utilizza la replica, non è possibile utilizzare la distribuzione tramite Xcopy.

Per utilizzare la distribuzione di Xcopy, è necessario che SQL Server Express sia installato sul computer di destinazione e un'istanza sia in esecuzione. Per ulteriori informazioni, vedere Istanze utente per non amministratori.

Modalità d'uso della distribuzione tramite Xcopy

Quando un'applicazione attiva una connessione da un'istanza in esecuzione di SQL Server Express, SQL Server Express collega automaticamente un file con estensione mdf. Alla chiusura dell'applicazione, SQL Server Express scollega il file con estensione mdf dall'istanza. Grazie alla caratteristica Xcopy il file mdf diventa completamente portabile. È possibile copiare e spostare il file e, contemporaneamente, eseguire più copie del file sulla stessa istanza.

Assegnazione di un nome logico al database

Quando SQL Server Express collega un database, genera automaticamente un nome logico per il database, a meno che il nome logico non sia specificato nella stringa di connessione dell'applicazione. Il nome logico deve essere univoco. In SQL Server Express il nome logico è composto da lettera di unità, nome di directory e nome del file di database. Ad esempio, se il file con estensione mdf è archiviato nel percorso C:\Programmi\My Application\Data\MainData.mdf, SQL Server Express assegnerà un nome di database logico esattamente corrispondente al percorso, ovvero C:\Programmi\My Application\Data\MainData.mdf.

Nota

Se la lunghezza del percorso completo e del nome di file supera i 127 caratteri, il nome di database logico viene abbreviato e viene aggiunto un GUID come prefisso. In tal modo viene garantito un nome logico univoco.

Creazione e denominazione del file di log

Quando si distribuisce un'applicazione tramite Xcopy, occorre includere solo i file dell'applicazione e il file con estensione mdf. Non è necessario includere il file di log (.ldf). Un file di log nuovo sarà automaticamente creato da SQL Server Express al momento del collegamento al database. Il file di log sarà desinato database_name_log.ldf da SQL Server Express. Se nella stessa directory del file mdf esiste un file con lo stesso nome, viene utilizzato il file esistente.

Limitazioni d'utilizzo per la distribuzione tramite Xcopy

Quando si utilizza la distribuzione tramite Xcopy per le applicazioni, è possibile che alcune caratteristiche di SQL Server Express non funzionino come previsto. Nell'elenco seguente vengono descritte le possibili limitazioni:

  • Qualsiasi struttura di codice Transact-SQL contenente nomi di database logici non funzionerà.

    Poiché il nome logico del database dipende dal percorso del file, che varia per ogni operazione Xcopy, l'esecuzione di qualsiasi blocco di codice che specifica un nome di database logico avrà esito negativo.

  • Le funzionalità di replica non sono disponibili.

    Per la replica è necessario un nome di database logico persistente. Se l'applicazione utilizza la replica, non è possibile utilizzare la distribuzione tramite Xcopy.

Distribuzione tramite Xcopy per gli amministratori di un'istanza di SQL Server Express

Per consentire l'utilizzo della caratteristica di distribuzione tramite Xcopy di SQL Server Express per le applicazioni, è necessario assicurarsi che la stringa di connessione utilizzata nell'applicazione contenga i parametri appropriati:

  • Utilizzare il parametro data source, ma modificare il nome del computer impostando un punto (.) oppure (local). È inoltre necessario specificare il nome dell'istanza, a meno di non essere sicuri che SQL Server Express venga sempre installato in un'istanza senza nome.

  • Utilizzare il parametro initial catalog o database, ma non impostare un valore per il parametro.

  • Aggiungere il parametro AttachDBFileName e impostarlo sul nome e il percorso del file con estensione mdf. Attachdbfilename è un parametro della stringa di connessione SqlClient che consente di collegare i database in fase di esecuzione e di generare automaticamente il nome del database. La parola chiave DataDirectory consente di specificare il percorso relativo di un file di database. Attachdbfilenamecontribuisce inoltre alla portabilità del database. Per ulteriori informazioni suAttachdbfilename, vedere la documentazione Visual Studio 2005.

La stringa di connessione seguente consente di collegare il file di database MyDb.mdf, disponibile nella stessa cartella dell'eseguibile dell'applicazione, all'istanza di SQL Server Express in esecuzione nel computer locale.

@"Data Source='.\SQLExpress'; Initial Catalog=; Integrated 
Security=true; AttachDBFileName='" |DataDirectory| + 
@"\MyDb.mdf'"

Distribuzione tramite Xcopy per utenti non amministratori di un'istanza di SQL Server Express

Per distribuire un'applicazione a utenti che non dispongono di diritti amministrativi sull'istanza di SQL Server Expressè necessario specificare quanto segue:

  • I parametri della stringa di connessione per la distribuzione di Xcopy.

  • Il parametro user instance.

Per ulteriori informazioni, vedere Istanze utente per non amministratori.

Vedere anche

Altre risorse