Criando objetos de banco de dados com integração CLR (Common Language Runtime)

Você pode compilar objetos de banco de dados que usam a integração do SQL Server com o CLR do .NET Framework. O código gerenciado executado no Microsoft SQL Server é mencionado como "rotina CLR". Essas rotinas incluem:

  • Funções definidas pelo usuário com valor escalar (UDFs escalares)

  • Funções definidas pelo usuário com valor de tabela (TVFs)

  • Procedimentos definidos pelo usuário (UDPs)

  • Gatilhos definidos pelo usuário

As rotinas CLR têm a mesma estrutura no código gerenciado. Elas são mapeadas para métodos públicos e estáticos (compartilhados no Microsoft Visual Basic .NET) de uma classe. Além das rotinas, também podem ser definidos UDTs (tipos definidos pelo usuário) e funções de agregação definida pelo usuário usando o .NET Framework. Os UDTs e as agregações definidas pelo usuário são mapeados para classes inteiras do .NET Framework.

Cada tipo de rotina do .NET Framework tem uma declaração Transact-SQL e pode ser usada em qualquer lugar no SQL Server que o equivalente de Transact-SQL possa ser usado. Por exemplo, UDFs escalares podem ser usados em qualquer expressão escalar. Uma TVF pode ser usada em qualquer cláusula FROM. Um procedimento pode ser invocado em uma instrução EXEC ou de um aplicativo cliente.

ObservaçãoObservação

A execução de um objeto CLR (função definida pelo usuário, tipo definido pelo usuário ou gatilho) no Common Language Runtime poderá acontecer em vários threads (plano paralelo), se o otimizador de consulta achar que isso é benéfico. No entanto, se uma função definida pelo usuário acessar dados, a execução estará em um plano serial. Quando executado em uma versão de servidor antes do SQL Server 2008, se uma função definida pelo usuário contiver parâmetros LOB ou valores de retorno, execução também deverá estar em um plano serial. Para obter mais informações, consulte Processamento paralelo de consultas.

Observe que não é possível usar o Visual Studio .NET 2003 para a programação de integração CLR. O SQL Server fornece o .NET Framework pré-instalado, e o Visual Studio .NET 2003 não pode usar os assemblies do .NET Framework 2.0.

A tabela a seguir lista os tópicos abordados nesta seção.