Artigo: 817178 - Última revisão: sexta-feira, 1 de Junho de 2007 - Revisão: 2.5

Resolução de problemas sugestões para T-SQL Debugger no Visual Studio .NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo contém orientações e instruções para resolução de problemas básicos relacionados com a T-SQL Debugger no Microsoft Visual Studio. NET. No entanto, não se trata de uma lista exaustiva, e podem ser específicos para o ambiente de alguns problemas.Para obter informações adicionais sobre a depuração T-SQL, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
316549  (http://support.microsoft.com/kb/316549/ ) Como depurar procedimentos armazenados no Visual Studio .NET
Para mais informações sobre como activar a depuração de SQL, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/s0fk6z6e(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/s0fk6z6e(vs.71).aspx)

Mais Informação

Resolução de problemas T-SQL Debugger

Utilize os seguintes métodos para ajudar a resolver T-SQL Debugger no Visual Studio. NET:
  • Certifique-se de que chamada de procedimento remoto (RPC) serviços estão iniciados no computador servidor. Para o fazer, siga estes passos:
    1. No painel de controlo, clique com o botão direito do rato em Serviços e, em seguida, clique em Abrir .
    2. Certifique-se de que a Chamada de procedimento remoto (RPC) e os serviços de Localizador de chamada de procedimento remoto (RPC) estão em execução e, em seguida, defina estes serviços para iniciar automaticamente.
  • Certifique-se que a conta de utilizador T-SQL Debugger leu e permissões para componentes do depurador de execução na pasta depuração de SQL. A Pasta depuração de SQL se na seguinte localização:
    Programa c:\Programas\Ficheiros comuns\Microsoft Shared
    Se a conta de utilizador não tiver estas permissões, receberá a seguinte mensagem de erro:
    Não é possível iniciar sessão de depuração T-SQL. Certifique-se sqldbreg2.exe e proxy/stub sqldbg.dll DLL registados neste computador.
  • Certifique-se de que o nome do procedimento armazenado não contém quaisquer aspas.

    Para obter mais informações sobre erros que ocorrem quando depurar procedimentos com nomes que contêm aspas, visite o seguinte site da Web MSDN:
    http://msdn2.microsoft.com/en-us/library/abk849z6(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/abk849z6(vs.71).aspx)
  • Certifique-se de que o procedimento armazenado não contém uma instrução RAISERROR que desencadeia um erro com gravidade 16 ou superior. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    280099  (http://support.microsoft.com/kb/280099/ ) Erro: O depurador de Transact-SQL não é possível depurar um procedimento armazenado que contém uma instrução RAISERROR que desencadeia um erro com gravidade 16 ou superior
  • Erro de depurador T-SQL verificação regista no Visualizador de eventos.

    Para mais informações, visite o seguinte site da Web MSDN:
    http://msdn2.microsoft.com/en-us/library/hcez68k4(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/hcez68k4(vs.71).aspx)
  • Depurador T-SQL utiliza DCOM (Distributed COM) para comunicar entre o computador cliente e o servidor de bases de dados. É uma boa ideia para configurar o DCOM para permitir aos utilizadores remotos anexar o depurador a um processo no servidor de base de dados. Poderão ocorrer problemas se as definições de permissão do DCOM estão incorrectas.

    Para obter mais informações sobre definições de permissão de DCOM, visite os seguintes sites da Web MSDN:
    http://msdn2.microsoft.com/en-us/library/s0t6w6kc(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/s0t6w6kc(vs.71).aspx)
    http://msdn2.microsoft.com/en-us/library/6ksc0a82(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/6ksc0a82(vs.71).aspx)
    http://msdn2.microsoft.com/en-us/library/aa291270(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/aa291270(VS.71).aspx)
  • Se instalar uma nova versão do Microsoft SQL Server depois de instalar a depuração remota do SQL, tem de executar a configuração de componentes remotos para se certificar que tem os componentes correctos instalados para depuração remota.

    Para obter mais informações sobre depuração remota do SQL, visite os seguintes Web sites da MSDN:
    http://msdn2.microsoft.com/en-us/library/bt727f1t(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/bt727f1t(vs.71).aspx)
    http://msdn2.microsoft.com/en-us/library/ey7ec813(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/ey7ec813(vs.71).aspx)
  • Examine o registo de eventos da aplicação e registo de eventos do sistema no computador que está a executar o SQL Server. Para o fazer, siga estes passos:
    1. No painel de controlo, faça duplo clique em Ferramentas administrativas .
    2. Faça duplo clique em Visualizador de eventos . Na janela do Visualizador de eventos, pode visualizar o registo de eventos da aplicação e registo de eventos do sistema.
  • Para o depurador T-SQL funcionar correctamente no Visual Studio .NET, o nome do computador e o nome de instalação do SQL Server têm de corresponder. Se mudar o nome a instalação do SQL Server, o nome do computador não coincide com o nome de instalação do SQL Server e T-SQL Debugger falha. Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
    817253  (http://support.microsoft.com/kb/817253/ ) PROBLEMA: Não é possível depurar o procedimento armazenado no Visual Studio .NET depois de mudar o nome do SQL Server

    317241  (http://support.microsoft.com/kb/317241/ ) PROBLEMA: Mudar o nome um computador anfitrião para o SQL Server faz com que procedimento armazenado depuração falha
  • Verifique se sessão T-SQL Debugger é iniciada a sessão de cliente do servidor de terminais. Opções de depuração depurador T-SQL não estão disponíveis quando um cliente de servidor de terminais é ligado a um servidor de terminais com o Microsoft SQL Server 2000 instalado. Depurar um procedimento armazenado deste computador cliente de terminal através de uma sessão do servidor de terminais não está disponível.

    A mensagem de erro no registo de eventos de aplicações de servidor de terminais é semelhante à seguinte mensagem de erro:
    Não é possível ligar depurador em % SQLSERVER_MACHINENAME %(Error = 0x80070057 The parameter is incorrect. ). Certifique-se que o cliente componentes como SQLLE.DLL está instalado e registado no % SQLSERVER_MACHINENAME. Depuração desactivada para ligação 54.
    Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    280100  (http://support.microsoft.com/kb/280100/ ) Erro: O depurador de Transact-SQL não está disponível através do servidor de terminais sessão
  • Verifique se tem dois procedimentos armazenados com o mesmo nome. Um procedimento armazenado é pertence pelo proprietário da base de dados (DBO) e o procedimento armazenado é possuído por um utilizador não DBO. Se tiver dois procedimentos armazenados que têm o mesmo nome mas com diferentes proprietários, nenhum dos utilizadores pode percorrer o procedimento armazenado utilizando o depurador T-SQL.Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    296539  (http://support.microsoft.com/kb/296539/ ) Erro: T-SQL Debugger não permite examinar os procedimentos armazenados com o mesmo nome pertencente a utilizadores não DBO
  • Certifique-se que é o proprietário do procedimento armazenado que está a tentar efectuar a depuração. No depurador T-SQL, não é possível depurar procedimentos armazenados que não possui depois de instalar o Microsoft SQL Server 2000 Service Pack 3 (SP3). Quando depura o procedimento armazenado que não seja propriedade por si, poderá receber uma mensagem de erro semelhante à seguinte:
    Servidor: Erro 229 nível 14, 5 de estado, procedimento sp_sdidebug, linha 1 permissão [Microsoft] [ODBC SQL Server controlador] [servidor SQL] EXECUTE negada no objecto 'sp_sdidebug', a base de dados 'dbname' proprietário 'nomeproprietário'.
    Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    328173  (http://support.microsoft.com/kb/328173/ ) PROBLEMA: Um utilizador de base de dados não é possível depurar procedimentos armazenados que outro utilizador
  • Certifique-se de que tem de executar permissões a depuração do procedimento armazenado. Quando o não ter permissões de execução a depuração do procedimento armazenado, receberá uma mensagem de erro semelhante à seguinte:
    Erro de servidor: 229, nível 14, 5 de estado, procedimento sp_sdidebug, linha 1 [Microsoft] [ODBC SQL Server controlador] [servidor SQL] EXECUTE permissão negada sp_sdidebug' objecto', da base de dados 'dbname' proprietário 'dbowner'.
    Para conceder permissões para executar a depuração de procedimento armazenado, execute o seguinte comando no analisador de consultas:
    GRANT EXECUTE
    ON sp_sdidebug 
    TO <myUserName>
    
  • Se o servidor for Microsoft SQL Server 2000 SP3, terá de executar o seguinte:
    EXECUTE  sp_sdidebug 'LEGACY_ON' 
    no computador que está a executar o SQL Server que este for iniciado. Isto pode ser feito manualmente do analisador de consultas. Este é um novo parâmetro de segurança que foi adicionado no SP3.
  • Para se certificar de que T-SQL depurador está a funcionar correctamente, teste T-SQL Debugger no mesmo computador onde o SQL Server está instalado, se possível.
  • Não é uma boa ideia utilizar o depurador T-SQL num servidor de produção. No modo de execução passo, o depurador pode bloquear determinados recursos de sistema necessário aceder a outros processos.
  • Certifique-se que tem versões correctas dos T-SQL Debugger ficheiros de componentes.
    • Componentes do servidor incluem Mssdi98.dll e Sqldbg.dll.
    • Componentes de cliente incluem Sqldbreg.exe e Sqldbg.dll.
    O ficheiro Mssdi98.dll deve estar a ser a mesma pasta que o ficheiro Sqlservr.exe. Por predefinição, Mssdi98.dll é na pasta BINN. Por predefinição, Sqldbg.dll e Sqldbreg.exe estão na pasta depuração de SQL. A depuração de SQL pasta se na seguinte localização:
    Programa c:\Programas\Ficheiros comuns\Microsoft Shared

Referências

Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
170496  (http://support.microsoft.com/kb/170496/ ) Sugestões para depurar procedimentos armazenados a partir do Visual Basic
310650  (http://support.microsoft.com/kb/310650/ ) Problemas conhecidos com o Visual Basic T-SQL Debugger e SQL Server 2000
280101  (http://support.microsoft.com/kb/280101/ ) Limitações de depurador de Transact-SQL e sugestões de resolução de problemas do SQL Server 2000
Para obter mais informações sobre depuração SQL, visite o seguinte Web site da Microsoft Developers Network (MSDN):
http://msdn2.microsoft.com/en-us/library/zefbf0t6(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/zefbf0t6(vs.71).aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbtshoot kbdebug kbtsql kbinfo KB817178 KbMtpt
Tradução automáticaTraduçã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: 817178  (http://support.microsoft.com/kb/817178/en-us/ )