Recebe uma mensagem de erro quando executa uma aplicação, script ou a funcionalidade de uma instalação anterior do SQL Server que utiliza funcionalidades comuns de runtime de idioma do SQL Server 2008 ou no SQL Server 2008 R2: "Ocorreu um erro de .NET Framework"

Traduções de Artigos Traduções de Artigos
Artigo: 955629 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Depois de actualizar para o Microsoft SQL Server 2008 ou ao Microsoft SQL Server 2008 R2, quando executa uma aplicação, um script ou uma funcionalidade de uma instalação anterior do Microsoft SQL Server que utiliza funcionalidades comuns de tempo de execução (CLR) de idioma, pode recebe uma mensagem de erro semelhante à seguinte mensagem de erro:
Msg 6522, nível de 16 de estado 1, linha 1

Ocorreu um erro no .NET Framework durante a execução da rotina definida pelo utilizador ou agregação routine name:

System.InvalidOperationException: Acesso de dados não é permitido neste contexto. O contexto é uma função ou método não marcado com DataAccessKind.Read ou SystemDataAccessKind.Read, é uma chamada de retorno para obter os dados resultantes de uma função avaliados tabela FillRow ou é um método de validação UDT.

System.InvalidOperationException
Por exemplo, este problema pode ocorrer nos seguintes cenários.

Cenário 1

Utilize um método que tem as seguintes características:
  • O método utiliza uma função definida pelo utilizador do CLR, um método de tipo definido pelo utilizador (TDU) ou um agregado definida pelo utilizador que efectua a representação.
  • O método utiliza um objecto de grandes dimensões (LOB) como um parâmetro.
  • O método não utiliza a propriedade DataAccesKind.Read no método.

Cenário 2

Utilizar o método INIT numa função de tabela avaliar CLR que efectua a representação.

Cenário 3

Utilize o método de FillRow numa função de tabela avaliar CLR que efectua a representação.

Causa

Este problema ocorre devido a uma alteração nas funcionalidades de motor de base de dados do SQL Server 2008 e no SQL Server 2008 R2.

Como contornar

Para contornar o problema descrito nos cenários na secção "Sintomas", utilize um dos seguintes métodos.

Método 1: Para resolver este problema no cenário 1 e no cenário 2

Para contornar este problema, adicione a propriedade DataAccessKind.Read o método.

Método 2: Para resolver este problema no cenário 3

Para contornar este problema, efectue o seguinte:
  • Remove o método FillRow representação.
  • Não acedem a recursos externos através da utilização do método FillRow.
  • Aceder a recursos externa apenas utilizando o método INIT da função avaliar tabela.

Referências

Para obter informações sobre a propriedade DataAccessKind.Read e outros atributos personalizados para CLR rotinas, visite o seguinte Web site Microsoft TechNet:
http://technet.microsoft.com/en-us/library/ms131050.aspx
Para obter informações sobre as alterações recentes nas funcionalidades de motor de base de dados do SQL Server 2008, visite o seguinte Web site Microsoft TechNet:
http://technet.microsoft.com/en-us/library/ms143179(SQL.100).aspx

Propriedades

Artigo: 955629 - Última revisão: 19 de março de 2009 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Workgroup
Palavras-chave: 
kbmt sql2008relnotedatabaseengine sql2008relnote kbprogramming kbautomation kberrmsg kbtshoot kbexpertiseinter kbprb KB955629 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 955629

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com