Compilazione di oggetti di database con l'integrazione con CLR (Common Language Runtime)

È possibile compilare oggetti di database utilizzando l'integrazione di SQL Server con CLR (Common Language Runtime) di .NET Framework. Il codice gestito eseguito in Microsoft SQL Server viene definito "routine CLR". Queste routine includono gli elementi seguenti:

  • Funzioni definite dall'utente con valori scalari

  • Funzioni definite dall'utente con valori di tabella

  • Procedure definite dall'utente

  • Trigger definiti dall'utente

Le routine CLR hanno la stessa struttura in codice gestito. Tali routine vengono mappate a metodi pubblici e statici (condivisi in Microsoft Visual Basic .NET) di una classe. Oltre alle routine, è possibile definire tipi definiti dall'utente e funzioni di aggregazione definite dall'utente utilizzando .NET Framework. I tipi definiti dall'utente e le aggregazioni definite dall'utente vengono mappati a intere classi di .NET Framework.

Ogni tipo di routine .NET Framework include una dichiarazione Transact-SQL e può essere utilizzato in SQL Server ovunque sia possibile utilizzare l'equivalente Transact-SQL. Le funzioni scalari definite dall'utente, ad esempio, possono essere utilizzate in qualsiasi espressione scalare. Una funzione con valori di tabella può essere utilizzata in qualsiasi clausola FROM. Una procedura può essere richiamata in un'istruzione EXEC o da un'applicazione client.

Nota

L'esecuzione di un oggetto CLR (funzione definita dall'utente, tipo definito dall'utente o trigger) sul Common Language Runtime può avvenire su più thread (piano parallelo), se il Query Optimizer decide che è vantaggioso. Tuttavia, se una funzione definita dall'utente accede ai dati, l'esecuzione sarà su un piano seriale. Anche in caso di esecuzione su una versione server antecedente a SQL Server 2008 e se una funzione definita dall'utente contiene parametri LOB o valori restituiti, l'esecuzione deve essere su un piano seriale. Per ulteriori informazioni, vedere Elaborazione parallela di query.

Si noti che non è possibile utilizzare Visual Studio .NET 2003 per la programmazione dell'integrazione CLR. SQL Server viene fornito con .NET Framework preinstallato e non è possibile utilizzare assembly di .NET Framework 2.0 in Visual Studio .NET 2003.

Nella tabella seguente sono elencati gli argomenti inclusi in questa sezione.