Condividi tramite


Procedura: Modifica della piattaforma di destinazione e pubblicazione di un progetto di database

È possibile impostare la versione di destinazione di SQL Server per il progetto di database SQL Server Data Tools (SSDT) su qualsiasi istanza supportata di SQL Server (SQL Server 2005, 2008, 2008 R2, Microsoft SQL Server 2012 o SQL Azure). In questo modo, è possibile centralizzare lo sviluppo del database in un unico progetto, ma la pubblicazione viene eseguita in più versioni di istanze di SQL Server in base alle esigenze.

SSDT semplifica anche questa attività conoscendo la piattaforma di destinazione e rilevando automaticamente eventuali errori nel codice, ad esempio quando si usano funzionalità non supportate per un progetto che verrà pubblicato in SQL Azure.

Per modificare la piattaforma di destinazione di un progetto

  1. Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e selezionare Proprietà. Selezionare la scheda Project Impostazioni a sinistra per accedere alla pagina delle proprietà Project Impostazioni.

  2. Nell'elenco a discesa Piattaforma di destinazione sono incluse tutte le piattaforme SQL Server supportate in cui è possibile pubblicare un progetto di database. Per questa procedura, selezionare SQL Azure.

Per utilizzare la convalida della piattaforma in caso di modifica di script

  1. Fare clic con il pulsante destro del mouse sulla tabella Products in Esplora soluzioni e selezionare Visualizza codice per aprirla in Editor Transact-SQL.

  2. Aggiungere ON [PRIMARY] alla fine dell'istruzione CREATE TABLE .

  3. Si noti che l'errore seguente viene visualizzato nel riquadro Elenco errori: SQL70015: "Riferimento al filegroup e schema di partizionamento" non è supportato in SQL Azure.

    SSDT consente di convalidare automaticamente lo script in base alla piattaforma di destinazione. In questo caso, poiché il filegroup non è supportato in SQL Azure, SSDT restituisce un errore. Per un elenco di istruzioni Transact-SQL non supportate in SQL Azure, vedere Istruzioni Transact-SQL parzialmente supportate (database SQL di Microsoft Azure).

  4. Rimuovere la clausola ON . Si noti che l'errore scompare immediatamente dall' Elenco errori.

Per pubblicare un progetto di database

  1. Se si dispone dell'accesso a un'istanza di SQL Azure, è possibile passare al passaggio successivo. In caso contrario, fare clic con il pulsante destro del mouse sul progetto TradeDev in Esplora soluzioni e selezionare Proprietà per accedere alla pagina delle proprietà Impostazioni progetto. Usare l'elenco a discesa Piattaforma di destinazione per selezionare la piattaforma SQL Server in cui si desidera pubblicare il progetto.

  2. Fare clic con il pulsante destro del mouse sul progetto TradeDev in Esplora soluzioni e selezionare Pubblica. In SSDT verrà avviata la compilazione del progetto. Se non è presente alcun errore di compilazione, viene visualizzata la finestra di dialogo Pubblica database .

  3. Nella finestra di dialogo Pubblica database selezionare Modifica per modificare la connessione al database di destinazione.

  4. Nella finestra di dialogo Proprietà connessione immettere il nome dell'istanza di SQL Server e le credenziali per l'autenticazione. In Connessione al databaseimmettere NewTrade. In questo modo si tenterà di pubblicare il progetto di database in uno nuovo database. È inoltre possibile scegliere un database esistente in cui eseguire la pubblicazione. Se si sceglie il database esistente TradeDev, ad esempio, tutte le modifiche apportate agli oggetti (come script) nel progetto TradeDev offline verranno propagate nel database TradeDev attivo.

    Se si dispone dell'autorizzazione per apportare tutte le modifiche al database in cui si desidera pubblicare, premere il pulsante Pubblica . Se, tuttavia, non si ha accesso in scrittura a un database di produzione, è possibile selezionare il pulsante Genera script per produrre uno script di pubblicazione Transact-SQL, che può quindi essere passato a un amministratore di database. L'amministratore di database può quindi eseguire lo script per aggiornare il server di produzione in modo che lo schema sia sincronizzato con il progetto di database.

  5. Nella finestra Operazioni degli strumenti dati verrà visualizzato lo stato delle operazioni di pubblicazione e verranno notificati eventuali errori. Se lo si desidera, in questa nuova finestra è possibile anche scegliere di visualizzare l'anteprima della distribuzione, lo script generato o i risultati completi della pubblicazione.

  6. Inoltre, è possibile salvare le impostazioni di pubblicazione in un profilo affinché sia possibile riutilizzare le stesse impostazioni per operazioni di pubblicazione future. A tale scopo, selezionare il pulsante Salva profilo con nome nella finestra di dialogo Pubblica database . In futuro, è possibile selezionare il pulsante Carica profilo quando si desidera ricaricare le impostazioni esistenti.

  7. Si notino i messaggi nella finestra Operazioni degli strumenti dati . Selezionare il collegamento "Visualizza anteprima" a destra di Creazione dell'anteprima di pubblicazione... Verrà aperto il report di anteprima della distribuzione. Se la piattaforma di destinazione del progetto non è identica al server di database in cui viene pubblicato il progetto, SSDT genererà un avviso in questo report. Ad esempio, se la piattaforma di destinazione del progetto è Microsoft SQL Server 2012 e si sta tentando di pubblicare il progetto in un'istanza del server SQL Server 2008 R2, nella finestra Output verrà visualizzato l'avviso seguente:

Un progetto in cui si specifica Microsoft SQL Server 2012 come piattaforma di destinazione può riscontrare problemi di compatibilità con SQL Server 2008 Se in tale progetto sono incluse entità (ad esempio, un oggetto Sequence) introdotte in Microsoft SQL Server 2012, l'operazione di pubblicazione non verrà completata.

La distribuzione avrà esito negativo se un predicato di oggetto usa CONTAINS o FREETEXT su un indice full-text appena creato e se vengono usati script transazionali. Se l'opzione per includere script transazionali è abilitata durante la distribuzione, le procedure e le viste vengono definite all'interno di una transazione mentre un indice full-text viene definito all'esterno di una transazione alla fine dello script di distribuzione. A causa di questo ordinamento nello script, nelle procedure o nelle viste che usano CONTAINS o FR edizione Enterprise TEXT non verrà risolto in base all'indice full-text, generando un errore di distribuzione.