Condividi tramite


Distribuzione di 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 Microsoft 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 Microsoft .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. Notare che Visual Studio .NET 2003 non può essere utilizzato per la programmazione o la distribuzione dell'integrazione CLR. SQL Server viene fornito con .NET Framework preinstallato e non è possibile usare assembly di .NET Framework 2.0 in Visual Studio .NET 2003.

Dopo aver testato e verificato i metodi CLR sul server di prova, sarà possibile distribuirli a server di produzione utilizzando uno script di distribuzione Lo script di distribuzione può essere generato manualmente o tramite SQL Server Management Studio (vedere la procedura più avanti in questo argomento).

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 Enabling CLR Integration.

Distribuzione dell'assembly a un server di prova

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 Microsoft 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.

Per distribuire l'assembly utilizzando Visual Studio

  1. Compilare il progetto selezionando Compila<nome> progetto dal menu Compila .

  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 verrà 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.

Per distribuire l'assembly utilizzando 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 di Microsoft Visual C#:

  3. csc /target:library C:\helloworld.cs

  4. Per i file di origine di Microsoft Visual Basic:

vbc /target:library C:\helloworld.vb

Questi comandi avviano il compilatore Visual 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 prova appropriato (ad esempio AdventureWorks).

  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;

  1. 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 il codice Transact-SQL seguente alla query 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 Funzioni CLR definite dall'utente, aggregazioni CLR definite dall'utente, tipi CLR definiti dall'utente, stored procedure CLR e trigger CLR.

Distribuzione dell'assembly a server di produzione

Dopo aver testato e verificato gli oggetti di database CLR sul server di prova, sarà possibile distribuirli a server di produzione. Per altre informazioni sul debug di oggetti di database gestiti, vedere 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. Tale script può essere anche compilato manualmente o utilizzando "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.

Per generare uno script di distribuzione utilizzando la funzione 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 fare clic su Avanti.

  4. Nel riquadro Scegli opzioni script fare clic su Avanti oppure modificare le opzioni e quindi fare clic su Avanti.

  5. Nel riquadro Scegli tipi di oggetto scegliere il tipo di oggetto di database da distribuire. Fare clic su 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 fare clic su Avanti.

  7. Il riquadro Opzioni di output viene visualizzato quando sono stati 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 fare clic su 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.

Fare clic su Distribuisci. In questo modo lo script verrà eseguito in Visual Studio dopo la distribuzione del progetto.

Vedi anche

Concetti relativi alla programmazione dell'integrazione con CLR (Common Language Runtime)