ID do artigo: 817178 - Última revisão: sexta-feira, 1 de junho de 2007 - Revisão: 2.5

Solução de problemas dicas 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 | Recolher tudo

Sumário

Este artigo contém diretrizes e instruções para solucionar problemas básicos relacionadas ao depurador do T-SQL no Microsoft Visual Studio. NET. No entanto, isso não é uma lista completa e alguns problemas podem ser específicos ao seu ambiente.Para obter informações adicionais sobre a depuração T-SQL, clique nos números abaixo para ler 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 obter mais informações sobre como ativar a depuração SQL, visite o seguinte site da Web 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ções

Solução de problemas T-SQL Debugger

Use os seguintes métodos para ajudar a solucionar T-SQL Debugger no Visual Studio. NET:
  • Verifique se que o RPC (site em inglês) serviços são iniciados no computador servidor. Para fazer isso, execute as seguintes etapas:
    1. No painel de controle, clique com o botão direito do mouse em serviços e, em seguida, clique em Abrir .
    2. Certifique-se que estão executando o Remote Procedure Call (RPC) e os serviços de localizador de Remote Procedure Call (RPC) e, em seguida, defina esses serviços para iniciar automaticamente.
  • Certifique-se que a conta de usuário de T-SQL Debugger leu e executar permissões para componentes do depurador na pasta depuração SQL. A Depuração SQL pasta fica no seguinte local:
    Programa de programas\Arquivos comuns\Microsoft Shared
    Se a conta de usuário não tiver essas permissões, você receber a seguinte mensagem de erro:
    Não é possível iniciar sessão de depuração T-SQL. Certifique-se sqldbg.dll DLL proxy/stub e sqldbreg2.exe são registrados nesta máquina.
  • Certifique-se de que o nome do procedimento armazenado não contém as aspas.

    Para obter mais informações sobre erros que ocorrem quando você depurar procedimentos com nomes que contenham aspas, visite o seguinte site da 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 gera qualquer erro com gravidade 16 ou superior. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    280099  (http://support.microsoft.com/kb/280099/ ) Erro: Depurador de Transact-SQL não pode depurar um procedimento armazenado que contém uma instrução RAISERROR que gera qualquer erro com gravidade 16 ou superior
  • Erro de T-SQL Debugger seleção registra em Visualizar eventos.

    Para obter mais informações, visite o seguinte site da MSDN:
    http://msdn2.microsoft.com/en-us/library/hcez68k4(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/hcez68k4(vs.71).aspx)
  • T-SQL Debugger usa DCOM (Distributed COM) para comunicação entre o computador cliente e servidor de banco de dados. É uma boa idéia para configurar o DCOM para permitir que usuários remotos anexar o depurador a um processo no servidor de banco de dados. Problemas podem ocorrer se as configurações de permissão DCOM estão incorretas.

    Para obter mais informações sobre configurações de permissão de DCOM, visite os seguintes sites da 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 você instalar uma nova versão do Microsoft SQL Server depois de instalar a depuração remota do SQL, você deve executar a instalação de componentes remotos para se certificar de que tem os componentes corretos instalados para depuração remota.

    Para obter mais informações sobre depuração remota do SQL, visite os seguintes 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 log de eventos do aplicativo e log de eventos do sistema no computador que está executando o SQL Server. Para fazer isso, execute as seguintes etapas:
    1. No painel de controle, clique duas vezes em Ferramentas administrativas .
    2. Clique duas vezes em Visualizar eventos . Na janela Visualizar eventos, você vê o log de eventos do aplicativo e log de eventos do sistema.
  • Para o T-SQL Debugger funcionar corretamente no Visual Studio .NET, o nome do computador e o nome da instalação do SQL Server devem corresponder. Se você renomear a instalação do SQL Server, o nome do computador não corresponde ao nome de instalação do SQL Server e T-SQL Debugger falhar. Para obter informações adicionais, clique nos números abaixo para ler 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 após renomear o SQL Server

    317241  (http://support.microsoft.com/kb/317241/ ) PROBLEMA: Renomear um computador host para o SQL Server faz com que depuração de procedimento armazenado para falha
  • Verifique se a sessão de T-SQL Debugger é iniciada da sessão de cliente do terminal server. Opções de depuração T-SQL Debugger não estão disponíveis quando um cliente do terminal server está se conectando a um servidor de terminal que tenha o Microsoft SQL Server 2000 instalado. Depuração um procedimento armazenado do computador cliente de terminal por meio de uma sessão do terminal server não está disponível.

    A mensagem de erro no log de eventos do aplicativo do servidor de terminal é semelhante a seguinte mensagem de erro:
    Não é possível se conectar ao depurador no % SQLSERVER_MACHINENAME %(Error = 0x80070057 The parameter is incorrect. ). Certifique-se que o cliente componentes do lado como SQLLE.DLL estão instalado e registrado no SQLSERVER_MACHINENAME %. Depuração desabilitada para conexão 54.
    Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    280100  (http://support.microsoft.com/kb/280100/ ) Erro: Depurador de Transact-SQL não está disponível através do Terminal Server sessão
  • Verifique se você tem dois procedimentos armazenados com o mesmo nome. Um procedimento armazenado é de propriedade pelo proprietário do banco de dados (DBO) e o procedimento armazenado é pertencentes a um usuário DBO não. Se você tiver dois procedimentos armazenados que possuem o mesmo nome mas que têm proprietários diferentes, nenhum dos usuários pode depurar o procedimento armazenado usando o depurador T-SQL.Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    296539  (http://support.microsoft.com/kb/296539/ ) Erro: T-SQL Debugger não permite a depuração através de procedimentos armazenados com o mesmo nome pertencentes a usuários não-DBO
  • Verifique se são o proprietário do procedimento armazenado que você está tentando depurar. No T-SQL Debugger, você não pode depurar procedimentos armazenados que você não possuir após instalar o Microsoft SQL Server 2000 Service Pack 3 (SP3). Quando você depurar o procedimento armazenado que não pertence a você, poderá receber uma mensagem de erro semelhante à seguinte:
    Servidor: Mensagem 229, nível 14, estado 5, procedimento sp_sdidebug, linha 1 permissão [Microsoft] [ODBC SQL Server Driver] [SQL Server] EXECUTE negada no objeto 'sp_sdidebug', banco de dados 'dbname' proprietário 'ownername'.
    Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    328173  (http://support.microsoft.com/kb/328173/ ) PROBLEMA: Um usuário de banco de dados não pode depurar procedimentos armazenados que outro usuário possuir
  • Certifique-se de que você tem permissões de execução sobre a depuração de procedimento armazenado. Ao você não tiver executar permissões na depuração do procedimento armazenado, você recebe uma mensagem de erro semelhante à seguinte:
    Mensagem de servidor: 229, nível 14, estado 5, procedimento sp_sdidebug, linha 1 [Microsoft] [ODBC SQL Server Driver] [SQL Server] EXECUTE permissão negada no objeto 'sp_sdidebug', banco de dados 'dbname', dbowner' proprietário'.
    Para conceder permissões de execução sobre a depuração de procedimento armazenado, execute o seguinte comando no Query Analyzer:
    GRANT EXECUTE
    ON sp_sdidebug 
    TO <myUserName>
    
  • Se o servidor for Microsoft SQL Server 2000 SP3, você deve executar o seguinte:
    EXECUTE  sp_sdidebug 'LEGACY_ON' 
    no computador que está executando o SQL Server cada vez que for iniciado. Você pode fazer isso manualmente do Query Analyzer. Isso é uma nova opção de segurança que foi adicionada no SP3.
  • Para certificar-se que o T-SQL Debugger está funcionando corretamente, teste T-SQL Debugger no mesmo computador onde o SQL Server é instalado, se você pode.
  • Não é uma boa idéia para usar o depurador T-SQL em um servidor de produção. No modo de execução de etapa, o depurador pode bloquear determinados recursos do sistema que devem acessar outros processos.
  • Verifique se você tem as versões corretas do T-SQL Debugger arquivos de componente.
    • Componentes de servidor incluem Mssdi98.dll e Sqldbg.dll.
    • Componentes de cliente incluem Sqldbreg.exe e Sqldbg.dll.
    O arquivo Mssdi98.dll deverá ser na mesma pasta que o arquivo Sqlservr.exe. Por padrão, Mssdi98.dll está na pasta BINN. Por padrão, Sqldbg.dll e Sqldbreg.exe estão na pasta depuração SQL. A depuração de SQL pasta fica no seguinte local:
    Programa de programas\Arquivos comuns\Microsoft Shared

Referências

Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
170496  (http://support.microsoft.com/kb/170496/ ) Dicas para depurar procedimentos armazenados a partir do Visual Basic
310650  (http://support.microsoft.com/kb/310650/ ) Problemas conhecidos com o depurador do Visual Basic T-SQL e SQL Server 2000
280101  (http://support.microsoft.com/kb/280101/ ) Limitações do Transact-SQL Debugger e dicas de solução de problemas para o SQL Server 2000
Para obter mais informações sobre a depuração SQL, visite o seguinte 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/ )