Bibliotecas do .NET Framework compatíveis
Com o CLR (common language runtime) hospedado no SQL Server, você pode criar procedimentos armazenados, gatilhos, funções definidas pelo usuário, tipos definidos pelo usuário e agregações definidas pelo usuário em código gerenciado. Com a funcionalidade contida nas bibliotecas de classe do .NET Framework, você tem acesso a classes pré-criadas que fornecem recursos de manipulação de cadeia de caracteres, operações matemáticas avançadas, acesso a arquivos, criptografia, e mais. Essas classes podem ser acessadas de qualquer procedimento armazenado gerenciado, tipo definido pelo usuário, gatilho, função definida pelo usuário ou agregação definida pelo usuário.
Observação |
---|
Se você reparar ou atualizar assemblies sem-suporte no GAC (cache de assembly global), seu aplicativo SQL Server pode deixar de funcionar. Isso ocorre porque o reparo ou a atualização de bibliotecas no GAC não atualiza esses assemblies dentro do SQL Server. Se um assembly existir tanto em um banco de dados do SQL Server como no GAC, as duas cópias do assembly deverão ser exatamente iguais. Caso não sejam iguais, ocorrerá um erro quando o assembly for usado pela integração CLR do SQL Server. Se você reparar ou atualizar qualquer assembly no GAC que também estiver registrado no banco de dados, incluindo assemblies do .NET Framework não suportadas, certifique-se de reparar ou atualizar a cópia do assembly em seus bancos de dados do SQL Server com a instrução ALTER ASSEMBLY. Para obter mais informações, consulte o artigo 949080 da Base de Dados de Conhecimento (https://go.microsoft.com/fwlink/?LinkID=154563). |
Bibliotecas com suporte
A partir do SQL Server 2005, SQL Server tem uma lista de bibliotecas suportadas do .NET Framework, que foram testadas para garantir o atendimento aos padrões de confiabilidade e segurança para interação com SQL Server. As bibliotecas suportadas não precisam ser explicitamente registradas no servidor para que possam ser usadas no seu código; SQL Server as carrega diretamente do GAC (Cache de Assembly Global).
As bibliotecas/namespaces suportados pela integração CLR no SQL Server são:
CustomMarshalers
Microsoft.VisualBasic
Microsoft.VisualC
mscorlib
System
System.Configuration
System.Data
System.Data.OracleClient
System.Data.SqlXml
System.Deployment
System.Security
System.Transactions
System.Web.Services
System.Xml
System.Core.dll
System.Xml.Linq.dll
Bibliotecas sem-suporte
As bibliotecas sem-suporte ainda podem ser chamadas de seus procedimentos armazenados gerenciados, gatilhos, funções definidas pelo usuário, tipos definidos pelo usuário e agregações definidos pelo usuário. A biblioteca sem-suporte deve ser registrada primeiro no banco de dados do SQL Server, usando a instrução CREATE ASSEMBLY, antes de poder ser usada no seu código. Qualquer biblioteca sem-suporte que é registrada e executada no servidor deveria ser examinada e testada para fins de segurança e confiabilidade.
Por exemplo, o namespace System.DirectoryServices não é suportado. Você deve registrar o assembly System.DirectoryServices.dll com permissões UNSAFE antes de poder chamá-lo do seu código. A permissão UNSAFE é necessária porque classes no namespace System.DirectoryServices não satisfazem aos requisitos para SAFE ou EXTERNAL_ACCESS. Para obter mais informações, consulte Restrições do modelo de programação da Integração CLR e Segurança de acesso a código da integração CLR.