Condividi tramite


Procedura: creare un progetto per gli oggetti di database che utilizzano l'integrazione di Common Language Runtime di SQL Server

I progetti SQL Server in Visual Studio consentono di creare stored procedure, trigger, aggregati, funzioni e tipi definiti dall'utente mediante linguaggi .NET Framework quali Visual Basic e Visual C#. I progetti SQL Server richiedono un riferimento a SQL Server 2005 o versioni successive di SQL Server. Questi oggetti vengono spesso definiti oggetti Common Language Runtime di SQL Server o oggetti CLR SQL.

Nota importanteImportante

Se si desidera sviluppare assembly CLR SQL per SQL Server 2005 o SQL Server 2008, è necessario che nel computer di sviluppo sia installato .NET Framework versione 3.5. SQL Server 2005 e SQL Server 2008 richiedono che gli assembly CLR SQL siano destinati alla versione 2.0, 3.0 o 3.5 di .NET Framework. È possibile installare Microsoft .NET Framework 3.5 dal sito Web Microsoft.

Dopo aver creato un progetto di database CLR SQL, creare gli oggetti di database che si desidera distribuire in SQL Server. Nella tabella che segue sono indicati i collegamenti agli argomenti della Guida in cui viene descritto come creare gli oggetti di database disponibili.

Oggetto Database

Informazioni

Stored procedure

Procedura: creare ed eseguire una stored procedure SQL Server tramite l'integrazione di Common Language Runtime

Trigger

Procedura: creare ed eseguire un trigger SQL Server tramite l'integrazione di Common Language Runtime

Aggregate

Procedura: creare ed eseguire un aggregato SQL Server tramite l'integrazione di Common Language Runtime

Funzione definita dall'utente

Procedura: creare ed eseguire una funzione SQL Server definita dall'utente tramite l'integrazione di Common Language Runtime

Tipo definito dall'utente

Procedura: creare ed eseguire un tipo SQL Server definito dall'utente tramite l'integrazione di Common Language Runtime

Nota

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere la classe Gestione delle impostazioni.

Creazione di un nuovo progetto

Per creare un nuovo progetto SQL Server

  1. Scegliere Nuovo dal menu File e fare clic su Progetto.

  2. In Modelli installati espandere il nodo Database, quindi fare clic su SQL Server.

  3. Nell'elenco dei modelli fare clic sull'icona che corrisponde al tipo di progetto che si desidera creare. Per creare ad esempio un progetto CLR SQL che utilizza Visual C#, fare clic su Progetto di database CLR SQL Visual C#.

  4. Nell'elenco dei framework di destinazione, che si trova sopra l'elenco dei modelli, fare clic sulla versione di .NET Framework che corrisponde alla versione di SQL Server in cui si intende distribuire il progetto di database CLR SQL.

    Nota importanteImportante

    SQL Server 2005 e SQL Server 2008 supportano solo i progetti SQL Server compilati con la versione 2.0, 3.0 o 3.5 di .NET Framework. Se si tenta di implementare un progetto SQL Server in SQL Server 2005 o SQL Server 2008, viene visualizzato un errore: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (dove AssemblyName è il nome dell'assembly che si sta implementando).

  5. In Nome specificare il nome che si desidera utilizzare per il progetto.

  6. quindi fare clic su OK.

Configurazione del progetto SQL Server

Dopo avere creato il progetto SQL Server, potrebbe essere necessario modificare alcune proprietà del progetto per una corretta distribuzione.

Per configurare le proprietà del progetto SQL Server

  1. In Esplora soluzioni selezionare il progetto per il quale si desidera configurare le proprietà.

  2. Scegliere Proprietà di NomeProgetto dal menu Progetto, dove NomeProgetto è il nome assegnato al progetto SQL Server.

  3. Nella scheda Applicazione, in Assembly, specificare il nome che si desidera assegnare all'assembly compilato dal progetto SQL Server.

  4. Se è già stata specificata una versione di .NET Framework supportata dalla versione di SQL Server in cui si intende distribuire il progetto di database CLR SQL, è possibile procedere al passaggio 10.

  5. Se si utilizza Visual Basic, procedere al passaggio 7.

  6. Nella scheda Applicazione, in Framework di destinazione, fare clic sulla versione di .NET Framework che corrisponde alla versione di SQL Server in cui si intende distribuire il progetto di database CLR SQL.

    Nota importanteImportante

    SQL Server 2005 e SQL Server 2008 supportano solo i progetti SQL Server compilati con la versione 2.0, 3.0 o 3.5 di .NET Framework. Se si tenta di implementare un progetto SQL Server in SQL Server 2005 o SQL Server 2008, viene visualizzato un errore: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (dove AssemblyName è il nome dell'assembly che si sta implementando).

  7. Procedere al passaggio 10. I passaggi 7, 8 e 9 sono validi solo se si utilizza Visual Basic.

  8. Nella scheda Compilazione fare clic su Opzioni di compilazione avanzate.

  9. Nella finestra di dialogo Impostazioni del compilatore avanzate, in Framework di destinazione, fare clic sulla versione di .NET Framework che corrisponde alla versione di SQL Server in cui si intende distribuire il progetto di database CLR SQL.

    Nota importanteImportante

    SQL Server 2005 e SQL Server 2008 supportano solo i progetti SQL Server compilati con la versione 2.0, 3.0 o 3.5 di .NET Framework. Se si tenta di implementare un progetto SQL Server in SQL Server 2005 o SQL Server 2008, viene visualizzato un errore: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (dove AssemblyName è il nome dell'assembly che si sta implementando).

  10. quindi fare clic su OK.

  11. Nella scheda Database, in Proprietario assembly, digitare il nome di un utente o di un ruolo come proprietario dell'assembly.

    Nota importanteImportante

    Questo valore deve essere il nome di un ruolo di cui l'utente corrente è un membro oppure l'utente corrente deve disporre di un'autorizzazione IMPERSONATE. Se non si specifica un proprietario dell'assembly, la proprietà verrà concessa all'utente corrente. Questa impostazione corrisponde all'argomento AUTHORIZATION nome_proprietario per l'istruzione SQL Server CREATE ASSEMBLY. Per ulteriori informazioni, vedere CREATE ASSEMBLY (Transact-SQL) nel sito Web Microsoft.

  12. Scegliere Salva tutto dal menu File.

    Se si desidera creare un oggetto CLR SQL che utilizza la serializzazione XML, effettuare i passaggi aggiuntivi seguenti descritti nella sezione "Creazione di oggetti CLR SQL che utilizzano la serializzazione XML".

Creazione di oggetti CLR SQL che utilizzano la serializzazione XML

Se si crea un servizio Web, è possibile attivare l'opzione Genera assembly di serializzazione nelle proprietà di compilazione. Tuttavia, quando si distribuisce l'assembly che contiene gli oggetti CLR SQL, l'assembly di serializzazione XML non viene creato nel server di destinazione. È necessario aggiungere un'istruzione allo script PostDeployScript.sql per creare tale assembly.

Nota

Se si crea un servizio Web, è necessario impostare il set di autorizzazioni su EXTERNAL_ACCESS o UNSAFE e attivare l'impostazione Trustworthy per il database di destinazione.

Per creare l'assembly XMLSerializer per un assembly CLR SQL

  1. In Esplora soluzioni espandere il progetto CLR SQL che si desidera distribuire e fare doppio clic sullo script PostDeployScript.sql.

  2. Nell'editor di codice aggiungere allo script l'istruzione Transact-SQL seguente:

    CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll' 
    

    Dove SqlClassLibraryXML è il nome che si desidera assegnare all'assembly, path è il percorso dell'assembly del serializzatore e assemblyname.XmlSerializers.dll è il nome dell'assembly del serializzatore.

  3. Scegliere Salva PostDeployScript.dll dal menu File.

Connessione a un database SQL Server

I progetti CLR SQL richiedono una connessione a un database in esecuzione su SQL Server 2005 o versione successiva. Se in Esplora server sono disponibili connessioni a database di SQL Server 2005, queste verranno elencate nella finestra di dialogo Aggiungi riferimento al database. Se si intende distribuire l'assembly compilato dai progetti SQL Server tramite un progetto di database (.dbproj), non è necessario specificare una connessione di database ed è possibile fare clic su Annulla nella finestra di dialogo di connessione. Per ulteriori informazioni, vedere Avvio dello sviluppo in team di database che fanno riferimento a oggetti SQLCLR.

Per effettuare la connessione a un database di SQL Server

Vedere anche

Attività

Procedura dettagliata: creazione di una stored procedure nel codice gestito

Procedura: eseguire il debug di una stored procedure CLR SQL

Riferimenti

Attributi per oggetti di database e progetti di database CLR SQL

Concetti

Introduzione all'integrazione con CLR di SQL Server (ADO.NET)

Vantaggi dell'utilizzo di codice gestito per creare oggetti di database

Creazione di oggetti SQL Server nel codice gestito