Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un progetto di database SQL è una rappresentazione locale degli oggetti SQL che costituiscono lo schema di un database singolo, ad esempio tabelle, stored procedure o funzioni. Il ciclo di sviluppo di un progetto di database SQL consente di integrare lo sviluppo di database in flussi di lavoro di integrazione continua e distribuzione continua (CI/CD) familiari come procedure consigliate per lo sviluppo. In SSMS è possibile usare Microsoft.Build.Sql i progetti in anteprima per implementare, gestire e collaborare alle modifiche del database, fornendo una definizione locale degli oggetti di database.
Questo articolo descrive come usare i progetti di database SQL in SQL Server Management Studio (SSMS) come parte o per ancorare i flussi di lavoro DevOps del database. Per altre informazioni sui progetti di database SQL, vedere Progetti di database SQL.
Prerequisiti
- .NET SDK
- SQL Server Management Studio (SSMS)
- Pacchetto di lavoro DevOps per database installato in SSMS
Creare un nuovo progetto
Per usare i progetti di database SQL in SSMS, è necessaria una cartella locale contenente i file di progetto. È possibile avviare un progetto estraendo oggetti da un database esistente o creando nuovi file oggetto da zero.
Annotazioni
SSMS potrebbe richiedere di connettersi a un server quando si apre un file da Esplora soluzioni. È possibile eseguire lo sviluppo di progetti di database SQL offline senza connettersi a un database.
Aggiungere oggetti da un database esistente
Usare SqlPackage per estrarre lo schema da un database esistente in singoli .sql file organizzati per tipo di oggetto. Eseguire il comando seguente per creare una struttura di cartelle con gli oggetti di database:
sqlpackage /Action:Extract /SourceConnectionString:"<connection-string>" /TargetFile:"<temp-folder>" /p:ExtractTarget=SchemaObjectType
Il /p:ExtractTarget=SchemaObjectType parametro organizza i file estratti in sottocartelle in base allo schema e al tipo di oggetto , ad esempio dbo/Tables, dbo/StoredProcedures. Estrarre in una cartella temporanea al di fuori della directory del progetto e quindi usare Esplora file per copiare il contenuto desiderato nella cartella del progetto.
Per altre informazioni sulle opzioni di estrazione di SqlPackage, vedere Estrazione di SqlPackage.
Creare nuovi oggetti
Aggiungere nuovi oggetti di database al progetto creando .sql file nella cartella del progetto. Ogni file deve contenere una singola CREATE istruzione per un oggetto di database. Ad esempio, una definizione di tabella:
CREATE TABLE [dbo].[Products]
(
[ProductId] INT NOT NULL PRIMARY KEY,
[ProductName] NVARCHAR (100) NOT NULL,
[Price] DECIMAL (10, 2) NOT NULL
);
Organizzare i file in base allo schema e al tipo di oggetto usando sottocartelle, ad esempio dbo/Tables o Sales/StoredProcedures. Questa struttura corrisponde all'output dell'estrazione di SqlPackage e semplifica l'individuazione degli oggetti man mano che aumenta il progetto. Il processo di compilazione del progetto SQL include tutti i .sql file nella cartella del progetto e nelle relative sottocartelle per impostazione predefinita.
SSMS fornisce modelli per gli elementi comuni che consentono di iniziare. Per aggiungere un nuovo elemento, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni, selezionare Aggiungi>nuovo elemento e scegliere dall'elenco dei modelli di oggetto SQL.
Aprire progetti esistenti
Per aprire un progetto di database SQL esistente in SSMS, selezionare File>Apri>progetto/soluzione e passare al .sqlproj file.
Importante
SSMS supporta solo progetti in stile Microsoft.Build.Sql SDK. La versione minima supportata dell'SDK è 2.1.0. Se è stato creato un progetto SQL originale in Visual Studio, è necessario convertirlo nel formato in stile SDK prima di aprirlo.
Per indicazioni sulla conversione di progetti SQL originali nel formato in stile SDK, vedere Convertire un progetto SQL originale in un progetto in stile SDK.
Compilare progetti e distribuire le modifiche
Il flusso di lavoro del progetto SQL è costituito da due passaggi principali: la compilazione del progetto per convalidare e compilare lo schema e distribuire l'output compilato in un database di destinazione.
La compilazione del progetto
La compilazione di un progetto SQL convalida le relazioni tra oggetti e controlla la sintassi T-SQL rispetto alla piattaforma di destinazione specificata. Il processo di compilazione produce un .dacpac file contenente un modello compilato dello schema del database.
Per compilare un progetto in SSMS, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Compila.
L'output di compilazione visualizza eventuali errori o avvisi. Gli errori indicano problemi che impediscono la distribuzione, ad esempio una vista che fa riferimento a una tabella che non esiste. Gli avvisi evidenziano potenziali problemi, come l'uso incoerente di maiuscole nei nomi degli oggetti.
In una compilazione completata, il .dacpac file viene creato nella cartella all'interno della bin\Debug directory del progetto.
Per altre informazioni sulla risoluzione dei problemi di compilazione, vedere Risolvere gli errori di compilazione del progetto SQL.
Distribuire le modifiche
Dopo aver compilato il progetto, distribuisci il .dacpac a un database di destinazione usando la finestra di dialogo 'Pubblica' di SSMS. Il processo di distribuzione confronta il .dacpac con il database di destinazione e genera le istruzioni CREATE, ALTER o DROP necessarie per sincronizzare il database con il tuo progetto.
Per eseguire la distribuzione, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica. Nella finestra di dialogo Pubblica configurare la connessione al database di destinazione e selezionare Pubblica per applicare le modifiche o Genera script per esaminare lo script di distribuzione prima dell'esecuzione.
Il processo di pubblicazione è idempotente, quindi è possibile distribuire più volte lo stesso .dacpac senza causare problemi. Questo approccio consente di eseguire la distribuzione in più ambienti (sviluppo, staging, produzione) usando lo stesso artefatto compilato.
Per informazioni dettagliate sulle opzioni di distribuzione e sulla configurazione, vedere Introduzione ai progetti di database SQL.