Distribuzione di oggetti di database CLR
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 essere compilati anche 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 Visual Studio o istruzioni Transact-SQL. Notare che Visual Studio .NET 2003 non può essere utilizzato per la programmazione o la distribuzione dell'integrazione CLR. SQL Server include .NET Framework preinstallato e Visual Studio .NET 2003 non può usare gli assembly .NET Framework 2.0.
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 oppure usando 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 Transact-SQL o Visual Studio.
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, vedere Configurare i protocolli client.
Per distribuire l'assembly utilizzando Visual Studio
Compilare il progetto selezionando Compila<nome> progetto dal menu Compila .
Risolvere tutti gli avvisi e gli errori di compilazione prima di distribuire l'assembly al server di prova.
Selezionare Distribuisci dal menu Compila . L'assembly verrà quindi registrato nell'istanza di SQL Server e nel database specificati al momento della creazione del progetto SQL Server in Visual Studio.
Per distribuire l'assembly utilizzando Transact-SQL
Compilare l'assembly dal file di origine utilizzando i compilatori della riga di comando inclusi in .NET Framework.
Per i file di origine di Microsoft Visual C#:
csc /target:library C:\helloworld.cs
Per i file di origine di Microsoft Visual Basic:
vbc /target:library C:\helloworld.vb
Questi comandi consentono di avviare il compilatore Visual C# o Visual Basic utilizzando l'opzione /target
per specificare la compilazione di una DLL della libreria.
Risolvere tutti gli avvisi e gli errori di compilazione prima di distribuire l'assembly al server di prova.
Aprire SQL Server Management Studio nel server di test. Creare una nuova query, connessa a un database di prova appropriato (ad esempio AdventureWorks).
Creare l'assembly nel server aggiungendo il codice Transact-SQL seguente alla query.
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;
- La routine, 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 denominatoHelloWorld
nellaProcedures
classe , è possibile aggiungere il codice Transact-SQL seguente alla query per creare una routine denominatahello
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 User-Defined, clr User-Defined aggregazioni, tipi CLR User-Defined, 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
Aprire Management Studio e connettersi all'istanza di SQL Server in cui è registrato l'assembly gestito o l'oggetto di database da distribuire.
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.
Selezionare il database nella casella di riepilogo e fare clic su Avanti.
Nel riquadro Scegli opzioni script fare clic su Avanti oppure modificare le opzioni e quindi fare clic su Avanti.
Nel riquadro Scegli tipi di oggetto scegliere il tipo di oggetto di database da distribuire. Fare clic su Avanti.
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.
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. Rivedere 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.
Vedere anche
Concetti relativi alla programmazione dell'integrazione con CLR (Common Language Runtime)