Creazione di oggetti SQL Server nel codice gestito
Per definire gli oggetti di database viene in genere utilizzato il linguaggio di programmazione Transact-SQL. Tuttavia, è possibile utilizzare anche i linguaggi .NET Framework per definire gli oggetti di database, ad esempio stored procedure e trigger, e per recuperare e aggiornare i dati per i database SQL Server. Questi oggetti vengono spesso definiti oggetti Common Language Runtime di SQL Server o oggetti CLR SQL.
Per creare un oggetto di database, è possibile creare un progetto SQL Server, aggiungere gli elementi richiesti a tale progetto, quindi aggiungere codice a questi ultimi. Successivamente è possibile compilare il progetto in un assembly e distribuirlo su SQL Server.
Nota
Per impostazione predefinita, la funzionalità di integrazione di Common Language Runtime (CLR) è disattivata in SQL Server. Per utilizzare gli elementi di progetti CLR SQL, è necessario abilitare l'integrazione CLR. A tale scopo, utilizzare l'opzione clr enabled della stored procedure sp_configure. Per ulteriori informazioni, vedere l'argomento Opzione clr enabled nel sito Web Microsoft.
Compilazione, distribuzione e debug
La compilazione di un progetto ne implica la compilazione in un assembly che possa essere distribuito al database cui viene fatto riferimento nel progetto e che successivamente possa essere sottoposto a debug.
Nota
In alternativa all'esecuzione dei tre singoli passaggi di compilazione dell'assembly, distribuzione al database e debug dell'oggetto di database è possibile eseguire automaticamente le tre operazioni utilizzando il comando Avvia (F5) o Avvia senza eseguire debug (CTRL+F5). Il progetto di database CLR SQL deve essere impostato come progetto di avvio se si desidera utilizzare F5 o CTRL+F5. Per ulteriori informazioni, vedere Procedura: impostare progetti di avvio.
Se lo si desidera, è possibile aggiungere le istruzioni Transact-SQL a PreDeployScript.sql e PostDeployScript.sql. È possibile scegliere di procedere in tal modo se è necessario eseguire azioni sul database prima o dopo la distribuzione del progetto di database CLR SQL.
Prima di poter eseguire il debug dell'oggetto di database, è necessario aggiungere codice Transact-SQL allo script Test.sql o è possibile aggiungere lo stesso codice Transact-SQL a un'istanza dell'editor Transact-SQL connessa al database in cui è stato distribuito il progetto. Lo script è importante per il debug in quanto esegue nel database le azioni necessarie per l'avvio e la verifica dell'oggetto di database. Se il progetto di database CLR SQL contiene più oggetti di database, lo script deve includere codice Transact-SQL per verificare ogni oggetto di database di cui si desidera eseguire il debug.
Lo script di debug richiesto in questo caso è diverso da quello di un progetto che crea ed esegue un programma eseguibile indipendente come un progetto Windows Form. L'esecuzione degli oggetti di database si verifica solo in risposta ad azioni o chiamate nel database. Un trigger può ad esempio essere attivato all'inserimento di una nuova riga in una tabella. Lo script dovrà quindi inserire in una tabella una nuova riga per l'attivazione del trigger. I risultati del trigger vengono visualizzati nella finestra di output di Visual Studio perché sia possibile verificare che funzioni correttamente.
Importante |
---|
È necessario disporre delle autorizzazioni appropriate per distribuire o eseguire il debug di un assembly CLR SQL. Per ulteriori informazioni, vedere Autorizzazioni necessarie per le funzionalità di database di Visual Studio. |
È possibile trovare il codice di esempio di ogni tipo di oggetto di database nell'argomento relativo al tipo specifico.
Debug dell'oggetto di database
Quando si esegue il debug di un oggetto di database, l'assembly viene compilato, distribuito al database e sottoposto a debug. Se il debug viene eseguito su un oggetto di database già compilato e distribuito, l'assembly viene compilato nuovamente solo se il progetto è cambiato rispetto all'ultima compilazione. L'assembly viene sempre eliminato dal database e copiato di nuovo. Per ulteriori informazioni, vedere Esecuzione del debug di oggetti di database che utilizzano codice gestito (debug CLR SQL).
Per attivare il debug remoto
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto CLR SQL per il quale si desidera abilitare il debug remoto e scegliere Proprietà.
Fare clic sulla scheda Distribuisci.
Selezionare Distribuzione codice.
Scegliere Salva elementi selezionati dal menu File.
Per eseguire il debug dell'oggetto di database
In Esplora soluzioni fare clic sulla soluzione.
Scegliere Avvia dal menu Debug.
Nella finestra di Output selezionare Output database dall'elenco Mostra output di per visualizzare i risultati.
Attività comuni
Attività comuni |
Contenuto di supporto |
---|---|
Ulteriori informazioni sui progetti di database CLR SQL: Apprendere i vantaggi offerti dallo sviluppo di oggetti di database.net Framework per SQL Server tramite codice gestito. Il codice gestito offre diversi vantaggi rispetto a Transact-SQL. |
|
Ottenere la pratica pratica: Attenersi alla procedura dettagliata per acquisire familiarità con le procedure di creazione, implementare e testare un progetto che definisce una stored procedure tramite codice gestito. |
|
Creare un progetto di database CLR SQL: Creare un progetto in Visual Basic o Visual C# che contengono le definizioni per gli oggetti di database che si desidera definire. |
|
Aggiungere elementi al progetto di database CLR SQL: Quando si crea innanzitutto un progetto SQL Server, contiene solo i riferimenti e le informazioni sull'assembly. Per creare gli oggetti di database, è necessario aggiungere elementi al progetto, quindi aggiungere codice a questi ultimi. È possibile aggiungere stored procedure, aggregati, trigger, funzioni definite dall'utente e tipi definiti dall'utente. È necessario applicare un attributo a ogni progetto SQL Server e a ogni oggetto in esso contenuto. È possibile definire più oggetti in un progetto. È possibile scegliere di utilizzare più progetti se gli oggetti devono essere aggiornati indipendentemente o se non tutti gli oggetti vengono utilizzati in ogni database in cui si distribuirà l'assembly risultante. |
|
Implementare l'assembly a SQL Server e testarlo: Dopo avere creato il progetto, aggiungere elementi e aggiungere codice a questi ultimi, è necessario implementare l'assembly risultante a SQL Server prima di poter utilizzare gli oggetti definiti. Se il progetto SQL Server contiene un riferimento a uno o più oggetti in un altro progetto SQL Server, non è possibile utilizzare il comando di distribuzione nel primo progetto per distribuire il secondo progetto (a cui si fa riferimento). Dopo avere distribuito l'assembly, è possibile eseguire alcuni semplici test eseguendo uno script di test. |
|
Oggetti di database .NET Framework implementati debug: Se l'oggetto di database non funziona come previsto, è possibile eseguire il debug di tale oggetto per identificare e correggere tutti gli errori del codice. |
Riferimento
System.Data
Viene descritto lo spazio dei nomi System.Data e viene fornita una tabella delle relative classi.System.Data.Sql
Viene descritto lo spazio dei nomi System.Data.Sql e viene riportata una tabella delle relative classi.System.Data.SqlTypes
Nello spazio dei nomi System.Data.SqlTypes vengono fornite le classi per i tipi di dati nativi in SQL Server 2005.Microsoft.SqlServer.Server
Viene descritto lo spazio dei nomi Microsoft.SqlServer.Server con una tabella delle relative classi.
Scenari correlati
Database di sviluppo in un ambiente di collaborazione in team di oggetti di database che fanno reference.NET Framework: È possibile utilizzare le funzionalità aggiuntive di Visual Studio per ridurre i rischi e migliorare la velocità nello sviluppo di applicazioni di database in un ambiente di collaborazione in team. È possibile definire lo schema del database in un progetto di database, sottoporre i progetti al controllo della versione e creare unit test del database per verificare il comportamento previsto.