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

Aplica-se a: SQL Server

Você pode criar objetos de banco de dados usando a integração do SQL Server com o CLR (Common Language Runtime) do .NET Framework. O código gerenciado executado dentro do Microsoft SQL Server é chamado de "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. Eles são mapeados 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 usado em qualquer lugar no SQL Server em que o equivalente 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çã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 executada em uma versão de servidor anterior ao SQL Server 2008 (10.0.x), se uma função definida pelo usuário contiver parâmetros LOB ou valores retornados, a execução também deverá estar em um plano serial.

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

Introdução à integração CLR
Fornece uma breve visão geral das bibliotecas e namespaces necessários para compilar o objeto usando a integração do CLR com o SQL Server. Inclui o exemplo de procedimento armazenado CLR "Hello World".

Bibliotecas do .NET Framework compatíveis
Fornece informações sobre as bibliotecas do .NET Framework suportadas pela integração CLR.

Restrições do modelo de programação da integração CLR
Fornece informações sobre restrições de modelo de programação de integração CLR.

Tipos de dados do SQL Server no .NET Framework
Uma visão geral dos tipos de dados do SQL Server e seus equivalentes do .NET Framework.

Visão geral dos atributos personalizados da integração CLR
Fornece informações sobre atributos personalizados de integração CLR.

Funções do CLR definidas pelo usuário
Descreve como implementar e usar os vários tipos de funções CLR: com valor de tabela, escalares e funções de agregação definida pelo usuário.

Tipos definidos pelo usuário de CLR
Descreve como implementar e usar tipos definidos pelo usuário CLR.

Procedimentos armazenados CLR
Descreve como implementar e usar procedimentos armazenados CLR.

Gatilhos de CLR
Descreve como implementar e usar gatilhos CLR.

Confira também

Visão geral da integração CLR (Common Language Runtime)