Condividi tramite


Procedura: importare oggetti di database da uno script

Oltre a importare lo schema di database da un database esistente, è possibile anche importare oggetti di database da uno o più script esistenti. Questo approccio può essere adottato, ad esempio, per importare nel progetto di database una definizione di database esistente creata utilizzando strumenti di terze parti. Lo script specificato viene analizzato e le istruzioni che creano oggetti di database vengono identificate e importate nel progetto di database. È possibile importare gli script tramite l'Importazione guidata file script SQL o tramite un comando di automazione dalla finestra di comando.

Se qualsiasi definizione di oggetto contiene un errore, l'oggetto verrà ignorato. Se l'errore è correlato alla definizione di tipo, l'istruzione verrà inserita nel file ScriptsIgnoredOnImport.sql del progetto di database. Se il tipo di oggetto è valido ma la definizione dell'oggetto contiene un errore, ad esempio una visualizzazione che fa riferimento a una tabella non esistente, nella finestra Elenco errori verrà visualizzato un messaggio di errore.

Le istruzioni non importate vengono inserite nel file ScriptsIgnoredOnImport.sql della soluzione.

Importazione di definizioni di oggetti di database

Per utilizzare l'Importazione guidata file script SQL

  1. Scegliere Importa script dal menu Progetto.

    Verrà visualizzata l'Importazione guidata file script SQL.

    Nota

    È anche possibile fare clic con il pulsante destro del mouse sul progetto di database in Esplora soluzioni o in Visualizzazione schema, quindi scegliere Importa script.

  2. Fare clic su Avanti per passare alla pagina Seleziona file dopo aver letto la pagina introduttiva della procedura guidata.

  3. Se si desidera importare più script, andare al passaggio 7.

  4. Scegliere File singolo.

  5. In Nome file digitare il nome file e il percorso dello script da importare. È anche possibile fare clic su Sfoglia per individuare il file.

  6. Andare al passaggio 11.

  7. Scegliere Più file.

  8. Fare clic su Sfoglia e spostarsi nella cartella in cui è inclusa la cartella contenente gli script da importare.

    Nota importanteImportante

    È necessario selezionare la cartella contenente gli script da importare, non gli script stessi.

  9. Scegliere Seleziona cartella.

  10. Nell'elenco di file e cartelle selezionare le caselle di controllo che corrispondono agli script o alle sottocartelle contenenti gli script da importare.

  11. Scegliere Avanti.

  12. Se si desidera che gli oggetti importati sostituiscano gli oggetti del progetto di database con lo stesso nome e dello stesso tipo, selezionare la casella di controllo Sovrascrivere gli oggetti già esistenti nel progetto.

  13. Se non si desidera importare le proprietà estese, deselezionare la casella di controllo Importa proprietà estese.

  14. Se si desidera importare le autorizzazioni, selezionare la casella di controllo Importa autorizzazioni.

  15. Se si desidera importare autorizzazioni e aggiungerle al modello di progetto, è necessario selezionare anche la casella di controllo Aggiungi autorizzazioni importate allo script del modello di progetto.

    Nota

    Una volta importate e aggiunte le autorizzazioni al modello, la quantità di tempo necessaria per aprire il progetto di database potrebbe aumentare significativamente.

  16. In Codifica fare clic sulla codifica con cui è stato creato il file script.

  17. Per importare le definizioni degli oggetti di database dallo script specificato, fare clic su Fine.

    Durante l'analisi dello script e l'aggiunta di definizioni di oggetti al progetto di database, verrà visualizzata una pagina di avanzamento. Verrà creato un file di log quando le definizioni di database vengono importate da uno script. I file di log vengono archiviati nella sottocartella Importa log di script all'interno della cartella del progetto.

    Nota

    Il file di origine non verrà modificato e si aprirà in modalità di sola lettura condivisa.

Per utilizzare il modello di automazione di Visual Studio

  1. Creare o aprire un progetto di database.

    Per ulteriori informazioni, vedere Procedura: creare progetti server e di database vuoti o Procedura: aprire un progetto server o di database.

  2. Aprire il menu Visualizza, scegliere Altre finestre e fare clic su Finestra di comando.

  3. Digitare il comando seguente nella finestra di comando:

    Project.ImportScript /FileName "MyScript.sql"
    

    Sostituire MyScript.sql con il nome dello script da importare.

    Nota

    È possibile specificare opzioni aggiuntive per il comando che consente di controllare l'operazione di importazione. Per ulteriori informazioni, vedere Tabella di riferimento dei comandi di automazione per le funzionalità di database di Visual Studio. Se non si specifica un nome di file, viene visualizzata l'Importazione guidata database.

    Gli oggetti e le impostazioni vengono importati dallo script specificato nel progetto selezionato in Esplora soluzioni al momento dell'esecuzione del comando. Nella finestra Elenco errori verranno visualizzati gli eventuali errori correlati agli oggetti creati durante l'importazione dello script.

    A questo punto è necessario configurare le impostazioni del progetto di database prima di poterlo compilare e distribuire. Per ulteriori informazioni, vedere Procedura: configurare le proprietà di database dei progetti di database.

Problemi e limitazioni

L'importazione guidata file script SQL consente di cercare lo script specificato per tutte le istruzioni Data Definition Language (DDL) CREATE e di aggiungere gli oggetti corrispondenti ai progetti. In tale contesto si applicano le limitazioni seguenti:

  • Le istruzioni che non vengono riconosciute vengono inserite nel file ScriptsIgnoredOnImport.sql del progetto di database.

  • Si presuppone che lo script contenga le definizioni relative a oggetti di un unico database. Tutti gli oggetti vengono importati nel progetto di database corrente. Se lo script contiene le definizioni relative a più database, le istruzioni CREATE DATABASE e USE verranno ignorate e tutti gli oggetti verranno aggiunti al progetto di database. Se si desidera creare più progetti di database, sarà necessario dividere manualmente il file in modo da disporre di un unico file per ciascun database e importare quindi i singoli file nei rispettivi progetti di database. Se si importa uno script contenente più definizioni di database in un unico progetto di database, è possibile che venga restituito un numero elevato di errori.

  • Vengono importate anche istruzioni ALTER DATABASE che aggiungono gruppi di file. Se lo script contiene un'istruzione CREATE seguita da un'istruzione DROP relativa all'oggetto creato, l'oggetto verrà importato.

  • Vengono importate solo le istruzioni ALTER TABLE che aggiungono vincoli a una tabella o specificano colonne per un indice full-text. Nel caso dei vincoli vengono riconosciute solo le istruzioni che aggiungono un singolo vincolo. Le istruzioni che aggiungono più vincoli a una tabella verranno ignorate.

  • I batch devono essere separati dalle istruzioni GO.

    Nota

    Per importare il risultato dell'esecuzione dello script, anziché le istruzioni CREATE contenute nello script, è possibile eseguire lo script per creare un database e quindi utilizzare il comando Importa schema database per importare il database risultante.

Vedere anche

Attività

Procedura: visualizzare oggetti di database

Procedura: eliminare oggetti di database

Concetti

Creazione e modifica di oggetti server e di database