Condividi tramite


Distribuire oggetti di database CLR

Si applica a:SQL Server

La distribuzione rappresenta il processo tramite il quale si mette a disposizione un'applicazione o un modulo pronto per l'utilizzo perché venga installato ed eseguito in altri computer. Con Visual Studio è possibile sviluppare oggetti di database CLR (Common Language Runtime) e distribuirli in un server di test. In alternativa, gli oggetti di database gestiti possono anche essere compilati con i file di ridistribuzione di .NET Framework, invece di Visual Studio. Dopo la compilazione, gli assembly contenenti gli oggetti di database CLR possono essere distribuiti in un server di test usando istruzioni Di Visual Studio o Transact-SQL.

Dopo aver testato e verificato i metodi CLR nel server di test, possono essere distribuiti ai server di produzione usando uno script di distribuzione. Lo script di distribuzione può essere generato manualmente o usando SQL Server Management Studio (descritto più avanti in questo articolo).

La funzionalità di integrazione CLR è disattivata per impostazione predefinita in SQL Server e deve essere abilitata per usare gli assembly CLR. Per altre informazioni, vedere Abilitare l'integrazione con CLR.

Distribuire l'assembly nel server di test

Visual Studio consente di sviluppare aggregazioni definite dall'utente, tipi definiti dall'utente, trigger, procedure e funzioni CLR, nonché di distribuirli a un server di prova. Questi oggetti di database gestiti possono essere compilati anche con i compilatori della riga di comando, ad esempio csc.exe e vbc.exe, inclusi nei file di ridistribuzione di .NET Framework. L'ambiente di sviluppo integrato di Visual Studio non è necessario per sviluppare oggetti di database gestiti per SQL Server.

Verificare che tutti gli avvisi e gli errori del compilatore siano risolti. Gli assembly contenenti le routine CLR possono quindi essere registrati in un database di SQL Server usando istruzioni Di Visual Studio o Transact-SQL.

Nota

Il protocollo di rete TCP/IP deve essere abilitato nell'istanza di SQL Server per usare Visual Studio per lo sviluppo remoto, il debug e lo sviluppo. Per altre informazioni sull'abilitazione del protocollo TCP/IP nel server, vedi Configurare i protocolli client.

Distribuire l'assembly con Visual Studio

  1. Compilare il progetto selezionando Nome progetto compilazione dal menu compilazione .

  2. Risolvere tutti gli avvisi e gli errori di compilazione prima di distribuire l'assembly al server di prova.

  3. Selezionare Distribuisci dal menu Compila . L'assembly viene quindi registrato nell'istanza di SQL Server e nel database specificato quando il progetto di SQL Server è stato creato per la prima volta in Visual Studio.

Distribuire l'assembly usando Transact-SQL

  1. Compilare l'assembly dal file di origine utilizzando i compilatori della riga di comando inclusi in .NET Framework.

  2. Per i file di origine C#:

    csc /target:library C:\helloworld.cs

  3. Per i file di origine di Visual Basic:

    vbc /target:library C:\helloworld.vb

Questi comandi avviano il compilatore C# o Visual Basic usando l'opzione /target per specificare la compilazione di una DLL di libreria.

  1. Risolvere tutti gli avvisi e gli errori di compilazione prima di distribuire l'assembly al server di prova.

  2. Aprire SQL Server Management Studio nel server di test. Creare una nuova query, connessa a un database di test appropriato, ad esempio AdventureWorks2022.

  3. Creare l'assembly nel server aggiungendo il codice Transact-SQL seguente alla query.

    CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;

  4. La procedura, la funzione, l'aggregazione, il tipo definito dall'utente o il trigger devono quindi essere creati nell'istanza di SQL Server. Se l'assembly HelloWorld contiene un metodo denominato HelloWorld nella classe Procedures, è possibile aggiungere alla query il Transact-SQL seguente per creare una routine denominata hello in SQL Server.

    CREATE PROCEDURE hello AS
    EXTERNAL NAME HelloWorld.Procedures.HelloWorld;
    

Per altre informazioni sulla creazione dei diversi tipi di oggetti di database gestiti in SQL Server, vedere:

Distribuire l'assembly nei server di produzione

Dopo aver testato e verificato gli oggetti di database CLR nel server di test, possono essere distribuiti ai server di produzione. Per altre informazioni sul debug di oggetti di database gestiti, vedere Come eseguire il debug di oggetti di database CLR.

La distribuzione di oggetti di database gestiti è simile a quella degli oggetti di database normali (tabelle, routine Transact-SQL e così via). Gli assembly che contengono gli oggetti di database CLR possono essere distribuiti agli altri server utilizzando uno script di distribuzione. Lo script di distribuzione può essere compilato usando la funzionalità Genera script di Management Studio. Lo script di distribuzione può anche essere compilato manualmente o compilato usando Genera script e modificato manualmente. Dopo aver compilato lo script di distribuzione, può essere eseguito in altre istanze di SQL Server per distribuire gli oggetti di database gestiti.

Generare uno script di distribuzione usando genera script

  1. Aprire Management Studio e connettersi all'istanza di SQL Server in cui è registrato l'assembly gestito o l'oggetto di database da distribuire.

  2. Nella Esplora oggetti espandere il nome< del> server e gli alberi Database. Fare clic con il pulsante destro del mouse sul database in cui è registrato l'oggetto di database gestito, selezionare Attività e quindi selezionare Genera script. Verrà avviata la Generazione guidata script.

  3. Selezionare il database nella casella di riepilogo e selezionare Avanti.

  4. Nel riquadro Scegliere opzioni script selezionare Avantioppure modificare le opzioni e quindi selezionare Avanti.

  5. Nel riquadro Scegli tipi di oggetto scegliere il tipo di oggetto di database da distribuire. Selezionare Avanti.

  6. Per ogni tipo di oggetto selezionato nel riquadro Scegli tipi di oggetto, viene visualizzato un riquadro Scegli <tipo> . In questo riquadro è possibile scegliere tra tutte le istanze del tipo di oggetto di database registrato nel database specificato. Selezionare uno o più oggetti e selezionare Avanti.

  7. Viene visualizzato riquadro Opzioni di output quando vengono selezionati tutti i tipi di oggetto di database desiderati. Selezionare Script per file e specificare un percorso di file per lo script. Selezionare Avanti. Esaminare le selezioni e selezionare Fine. Lo script di distribuzione verrà salvato nel percorso di file specificato.

Script post-distribuzione

È possibile eseguire uno script post-distribuzione.

Per aggiungere uno script post-distribuzione, inserire un file denominato postdeployscript.sql nella directory del progetto di Visual Studio. Ad esempio, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Aggiungi elemento esistente. Aggiungere il file alla radice del progetto, anziché alla cartella Test Scripts.

Quando si seleziona Distribuisci, Visual Studio eseguirà questo script dopo la distribuzione del progetto.