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

Si applica a:SQL Server

È possibile compilare oggetti di database usando l'integrazione SQL Server con Common Language Runtime (CLR). Il codice gestito eseguito all'interno di Microsoft SQL Server viene definito "routine CLR". Queste routine includono:

  • 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. Vengono mappati ai metodi public, 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. Viene eseguito il mapping dei tipi definiti dall'utente (UDT) e delle aggregazioni definite dall'utente a intere classi di .NET Framework.

Ogni tipo di routine di .NET Framework include una dichiarazione Transact-SQL e può essere usata ovunque in SQL Server che è possibile usare 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à in un piano seriale. Quando viene eseguita in una versione del server prima di SQL Server 2008 (10.0.x), se una funzione definita dall'utente contiene parametri LOB o valori restituiti, l'esecuzione deve essere anche in un piano seriale.

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

Introduzione all'integrazione con CLR
Fornisce una breve panoramica delle librerie e degli spazi dei nomi necessari per compilare l'oggetto usando l'integrazione CLR con SQL Server. È inclusa una stored procedure CLR "Hello World" di esempio.

Librerie .NET Framework supportate
Include informazioni sulle librerie .NET Framework supportate dall'integrazione CLR.

Restrizioni relative al modello di programmazione dell'integrazione con CLR
Include informazioni sulle restrizioni del modello di programmazione dell'integrazione CLR.

Tipi di dati di SQL Server in .NET Framework
Panoramica dei tipi di dati SQL Server e degli equivalenti di .NET Framework.

Panoramica degli attributi personalizzati dell'integrazione con CLR
Include informazioni sugli attributi personalizzati dell'integrazione CLR.

Funzioni CLR definite dall'utente
Viene descritto come implementare e utilizzare i diversi tipi di funzioni CLR, ovvero le funzioni con valori di tabella, le funzioni scalari e le funzioni di aggregazione definite dall'utente.

Tipi CLR definiti dall'utente
Viene descritto come implementare e utilizzare i tipi CLR definiti dall'utente.

Stored procedure CLR
Viene descritto come implementare e utilizzare le stored procedure CLR.

Trigger CLR
Viene descritto come implementare e utilizzare i trigger CLR.

Vedere anche

Panoramica dell'integrazione con CLR (Common Language Runtime)