跑到SQL Server上把MSSQLServer的服務登入者改為Administrator試試。

解决方案 »

  1.   

    跑到SQL Server上把MSSQLServer的服務登入者改為Administrator試試。
    ????那里修改??
    没看到呀,
      

  2.   

    服务器的调试报:Server: Msg 504, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to connect to debugger on MDMWEBSERVER (Error = 0x8000401a). Ensure that client-side components, such as SQLDBREG.EXE, are installed and registered on MDMWEBSERVER. Debugging disabled for connection 65.但是SQLDBREG.EXE这类的文件安装目录下都有呀。
      

  3.   

    開始-->程式-->系統工具-->服務。
      

  4.   

    右击你的服务器名选择编辑SQL SERVER注册属性----选择使用WINDOWS身份验证.
      

  5.   

    我的就是 使用的
    WINDOWS身份验证.
      

  6.   

    应该不管服务器的问题,我的英文版sql server可以调试我本机的存储过程,但是局域网的另外一台机子上的存储过程无法调试。我旁边一台中文版sql server不仅可以调试它本地的存储过程,还可以调试我机子不能调试的那台机子的存储过程。
      

  7.   

    你那台不能调试的那台机子的存储过程有元数据是中文吗??
    字符型是用nvarchar,nchar,ntext吗??
    用了nvarchar后对于字符常量用了N'大力'吗??
      

  8.   

    我的机子调试 mdmwebserver 这台服务器 的存储过程
    任何的存储过程都不能调试,不存在代码的问题,
    错误提示是:
    Server: Msg 514, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to communicate with debugger on MDMWEBSERVER (Error = 0x80070005). Debugging disabled for connection 58.
    我直接在mdmwebserver上调试存储过程Server: Msg 508, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to connect to debugger on MDMWEBSERVER (Error = 0x80070057). Ensure that client-side components, such as SQLLE.DLL, are installed and registered on MDMWEBSERVER. Debugging disabled for connection 62.
    但是,公司另外一台机子(装的是中文版的sql server2000) 就可以调试需要说明的,这些存储过程绝对没有任何bug ,绝对可以使用。
      

  9.   

    我测试的存储过程如下:
    CREATE procedure CSDN_Member_Grade
    @UserName varchar(20),
    @UserRank varchar(50) output,
    @UserCredit varchar(50) output
    as  SELECT  @UserRank = dbo.RankStr(Expert_Rank), @UserCredit = 
    case 
    when creditpoint <=0 then '被封杀' 
    else convert(varchar(15),creditpoint )
    end

    FROM  lt_User 
    where  lt_username = @UserNameGO至于 存储过程有元数据是中文吗 ????
    什么意思?? 
    dbo.RankStr( 函数是自己写的函数,如下ALTER  function dbo.RankStr(@rank char(5)) returns varchar(50)
    begin
    declare @rankstr as varchar(50)
    select @rankstr = 
    case @rank
    when 'user1' then '一级(初级)'
    when 'user2' then '二级(初级)'
    when 'user3' then '三级(初级)'
    when 'user4' then '四级(中级)'
    when 'user5' then '五级(中级)'
    when 'star1' then '一星(中级)'
    when 'star2' then '两星(中级)'
    when 'star3' then '三星(高级)'
    when 'star4' then '四星(高级)'
    when 'star5' then '五星(高级)'
    else '参数错误'
    end
    return @rankstr
    end
    这些数据就是csdn论坛现在用到的数据和存储过程,当然没有任何错误了。
      

  10.   

    你用英文sql的varchar,char,text放中文当燃不行!
    类型改为nvarchar,nchar,ntext型!
    如上面的函数改为:
    ALTER  function dbo.RankStr(@rank nchar(5)) returns nvarchar(50)
    begin
    declare @rankstr as nvarchar(50)
    select @rankstr = 
    case @rank
    when 'user1' then N'一级(初级)'
    when 'user2' then N'二级(初级)'
    when 'user3' then N'三级(初级)'
    when 'user4' then N'四级(中级)'
    when 'user5' then N'五级(中级)'
    when 'star1' then N'一星(中级)'
    when 'star2' then N'两星(中级)'
    when 'star3' then N'三星(高级)'
    when 'star4' then N'四星(高级)'
    when 'star5' then N'五星(高级)'
    else N'参数错误'
    end
    return @rankstr
    end过程改为:
    CREATE procedure CSDN_Member_Grade
    @UserName nvarchar(20),
    @UserRank nvarchar(50) output,
    @UserCredit nvarchar(50) output
    as  SELECT  @UserRank = dbo.RankStr(Expert_Rank), @UserCredit = 
    case 
    when creditpoint <=0 then N'被封杀' 
    else convert(nvarchar(15),creditpoint )
    end

    FROM  lt_User 
    where  lt_username = @UserNameGO
      

  11.   

    我这样改了,仍然没有用,还是报:在我机子上调试另外一台服务器的数据库,报:Server: Msg 514, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to communicate with debugger on MDMWEBSERVER (Error = 0x80070005). Debugging disabled for connection 55.
    在那台服务器上调试报:
    Server: Msg 508, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to connect to debugger on MDMWEBSERVER (Error = 0x80070057). Ensure that client-side components, such as SQLLE.DLL, are installed and registered on MDMWEBSERVER. Debugging disabled for connection 59.
      

  12.   

    你在一台英文sql上调试带中文的表,过程,函数
    表的字符类型字段一定要用nvarchar,nchar,ntext
    过程或函数一定要加N型!
    常量加 N'大力'
    你在sql联机帮助写入“国际化”看看!
      

  13.   

    我查了我要调试的存储过程用到的所有表、函数、触发器,其它没用到的表,存储过程、触发器、函数因为太多,我没有改把varchar 之类的都改成 nvarchar 还是报:Server: Msg 514, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to communicate with debugger on MDMWEBSERVER (Error = 0x80070005). Debugging disabled for connection 57.
      

  14.   

    因该是你的权限的问题,你仔细CHECK你的SQL SERVER的权限的分配。
      

  15.   

    whether you debug the sp which no in you local pc,you debug sp in remote server?
      

  16.   

    不要使用local system作为 sql server的启动帐户..确认调试器在远程服务器上的dcom中注册过..
      

  17.   

    SQL 查询分析器附带 Transact-SQL 调试程序,使您可以控制和监视存储过程的执行。该调试程序支持传统功能,如设置断点、定义监视表达式和单步执行过程。当 SQL Server 服务使用域用户帐户时该功能可用。在客户机/服务器环境中,运行调试程序的客户机工作站必须是运行相应 SQL Server 实例的计算机所在域的成员。SQL 查询分析器中的 Transact-SQL 调试程序支持对 Microsoft&reg; SQL Server&#8482; 2000、SQL Server 7.0 版和 SQL Server 6.5 版 Service Pack 2 进行调试。说明  建议不要在生成服务器上使用 Transact-SQL 调试程序。在步骤执行模式下,调试程序会锁定其它进程所需的某些系统资源。
      

  18.   

    Transact-SQL 调试程序疑难解答
    本主题的目标是解决启动和使用 Transact-SQL 调试程序时可能遇到的问题。潜在的错误源包括: 错误的 DCOM 权限设置
    Windows 98 上的 DCOM
    缺少或未注册 DLL
    缺乏(或限制的)调试程序支持 
    本主题描述了如何标识和修正各种问题。在尝试解答调试程序配置的疑难问题前,请验证: 确保具有执行 SP_SDIDEBUG 扩展过程的权限。
    使用在那台计算机上有管理员特权的帐户来启动 SQL Server 服务。
    对于每一条错误信息,请检查事件查看器的应用程序和系统日志。 
    错误的 DCOM 权限设置
    SQL 调试使用分布式 COM (DCOM) 在客户机和数据库服务器之间通讯。必须配置 DCOM 使远程用户可以把调试程序附加到数据库服务器的进程上。安装 SQL Server 时,默认的 DCOM 设置就是正确的。然而,由于从运行 SQL Server 的计算机的安全角度考虑,可能想要限制调试访问权限。下面的步骤可以作为在 SQL Server 计算机上建立 DCOM 的常规过程。重要  如果运行调试程序时,计划用户是运行 SQL Server 用户以外的任何用户,那么首先需要对 DCOM 进行正确配置。按照下面的步骤,确保有执行的权限。
    在服务器上: 运行 DCOMCNFG.EXE。
    在"分布式 COM 配置属性"窗口中,选择"默认安全"选项卡。在"默认访问权限"下,单击"编辑默认值"。
    如果"所有人"组还没有权限,可以单击"添加"将其添加进来。从"列出名称"列表中,选择本地机器名。选择"所有人",然后请确保把"访问类型"设置到"允许访问"中。然后,单击"确定"按钮。 
    或者如果希望限制让指定用户使用调试功能,那么可以添加具有管理员特权的单个域用户帐户(例如,domain\account)。如果选择只添加域帐户而不是"所有人",那么请确保同时添加"系统"帐户。切换到"分布式 COM 配置属性"对话框的"应用程序"选项卡。
    在"应用程序"列表中上下滚动,并选择"SQLDBREG"。然后单击"属性"。
    选择"标识"选项卡,并确保选择"交互式用户"作为运行该应用程序的用户。
    单击"确定"按钮关闭对话框。
    重新启动 SQL Server 服务。 
    应用上述步骤之后,服务器的 DCOM 设置应该如下所示:   DCOMCNFG
       |
       |__ Application Tab
       |   |
       |   |_____ SQLDBREG
       |      |
       |      |______ Identity Tab
       |         |
       |         |_______ The interactive user
       |
       |__ Default Security Tab
          |
          |_____ Default Access Permissions
             |
             |______ Edit Default Button
                |
                |_______ Everyone (or domain\account and System)
    Windows 98 上的 DCOM
    在 Windows 98 上的 DCOM95 不如 Windows NT 上的 DCOM 可靠。另外,如果在 Windows 98 上的 RPCSS.EXE 不是在装载解释器时或引导时启动,那么可能会造成一些问题。要确保 RPCSS.EXE 及时启动,修改下面的任一注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices按照下面的步骤在前面的任一注册表项中添加一个新的"字符串值"(可以随意命名),然后把这个值设置到"C:\WINDOWS\SYSTEM\RPCSS"中: 运行 REGEDIT.EXE。
    展开 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Run。
    右击然后选择"新建" -> "字符串值"。
    键入任意名称(例如,RPC)。
    双击新创建的字符串。
    键入相应值(例如,C:\WINDOWS\SYSTEM\RPCSS.EXE)。
    重启计算机。 
    同时确保下面的注册表键值设为"y":HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\EnableDCOM
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\EnableRemoteConnect做了上述改动之后,必须重启计算机。缺少或未注册 DLL
    如果调试程序启动失败,而且遇到如下错误信息,那么可能需要手工建立调试环境: 输出窗口中的错误(指出在 ..\mssql\binn 文件夹下缺少 mssdi98.dll) 
    ODBC:错误信息 0,级别 16,状态 1[Microsoft][ODBC SQL Server 驱动程序][SQL Server] 无法装载 DLL mssdi98.dll 或引用的 DLL 之一。原因:126(找不到指定的模块)。事件查看器/应用程序日志中的错误(指出 sqldbg.dll 未注册或 sqldbreg 未注册) 
    无法连接到 <服务器名> 上的调试程序(错误 = 0x80004002 不支持这种界面)。请确保已在 <服务器名> 上安装并注册了客户端组件(如 SQLDBREG.EXE)。连接 54 禁用调试。错误信息对话框(指出 sqldbg.dll 未注册或 sqldbreg 未注册)。 
    缺少或未注册 sdiclnt.dll初始化调试程序失败!可能原因:没有正确安装或注册"sdiclnt.dll"。当服务器和客户端(即查询分析器)在同一台计算机上运行时,按照如下步骤手工安装和注册缺少的调试程序组件: 从 SQL Server 2000 光盘的文件夹 \x86\binn 中将文件 sdiclnt.dll 复制到 c:\program files\microsoft sql server\mssql\80\tools\binn,然后执行下面的命令为其注册: 
    regsvr32 sdiclnt.dll说明  在 Windows 9x 上,regsvr32 实用工具位于文件夹 \windows\system 下。创建文件夹 c:\program files\common files\microsoft shared\SQL Debugging。
    把下面的文件从 \x86\other\sdi 复制到 c:\program files\common files\microsoft shared\SQL Debugging 下: 
    sqldbg.dll
    sqldbreg.exe然后,注册这些文件:regsvr32 sqldbg.dll
    sqldbreg /RegServer从 \x86\other\sdi 将文件 mssdi98.dll 复制到 sqlservr.exe 所在目录下(例如,c:\program files\microsoft sql server\mssql\binn)。
    重新启动 SQL Server 服务。 
    当服务器和客户端在不同计算机上运行时,按照下面的步骤手工安装和注册缺少的调试程序组件:在客户端: 从 SQL Server 2000 光盘的文件夹 \x86\binn 将文件 sdiclnt.dll 复制到 c:\program files\microsoft sql server\mssql\80\tools\binn,然后注册: 
    regsvr32 sdiclnt.dll说明  在 Windows 9x 上,regsvr32 实用工具位于文件夹 \windows\system 下。创建文件夹 c:\program files\common files\microsoft shared\SQL Debugging。
    把下面的文件从 \x86\other\sdi 复制到 c:\program files\common files\microsoft shared\SQL Debugging 下: 
    sqldbg.dll
    sqldbreg.exe然后,注册这些文件:regsvr32 sqldbg.dll
    sqldbreg /RegServer在服务器上: 创建文件夹 c:\program files\common files\microsoft shared\SQL Debugging。
    把下面的文件从 \x86\other\sdi 复制到 c:\program files\common files\microsoft shared\SQL Debugging: 
    sqldbg.dll然后注册以下文件:regsvr32 sqldbg.dll从 \x86\other\sdi 将文件 mssdi98.dll 复制到 sqlservr.exe 所在目录下(例如,c:\program files\microsoft sql server\mssql\binn)。
    重新启动 SQL Server 服务 
    缺乏(或限制的)调试程序支持
    对于下面的数据类型提供限制的支持: 
    表 
    这种类型的变量不在本地变量窗口中显示。sql_variant、text、ntext、image 和 cursor 
    这些类型的变量在本地变量窗口中显示,但是无法修改。不支持大于 64K 的过程。
    不支持大于 32 个存储过程调用的嵌套。
    一个存储过程的传递参数超过 1023 个则不受支持。 
      

  19.   

    还是无法远程调试报:Server: Msg 514, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to communicate with debugger on MDMWEBSERVER (Error = 0x80070005). Debugging disabled for connection 54.
    当然,所有本地调试没问题。
      

  20.   

    不要使用local system作为 sql server的启动帐户..确认调试器在远程服务器上的dcom中注册过..检查了,没问题。
    上面的详细步骤我也照着做了,还是不能进行远程调试,当然本地调试没问题的。
      

  21.   

    to : ghj1976(蝈蝈俊.net) 
    你要在远程服务器上配置dcom安全性..
    另外,能否说说的网络环境(比如说Sql Server是否安装在ad中)
      

  22.   

    C/S模式下,运行调试程序的客户机工作站必须是运行相应 SQL Server 实例的计算机所在域的成员。这一点很重要..如果不是这样的话,在服务器dcom安全性中(为了调试目的)将every one和network加进去并授权(不知是否可行)..
      

  23.   

    远程数据库机子跟我本地机子是在一个局域网(当然是一个域),远程数据库机子装的是win2000  ad  server + sql server 2000  我本地机子也是,
      

  24.   

    要在远程服务器上配置dcom安全性..????
    那里配置?? 察看那些项??
      

  25.   

    dcomcnfg.exe..
    设置步骤就在上面..
    至于如果你不是安装在ad环境下,并且客户机不是和sql server在同一个域内的话,不知道能否调试.
    "如果不是这样的话,在服务器dcom安全性中(为了调试目的)将every one和network加进去并授权(不知是否可行).."
      

  26.   

    远程数据库机子跟我本地机子是在一个局域网(当然是一个域)在一个局域网并不代表是一个域,一个局域网有可能有多个域(在这种情况下,为了达到目的必须设置域间的双向信任关系)..域是一个ms管理单元,和传统的workgroup管理方式的不同之处就在其集中的安全性管理..
    调试器作为一个dcom应用程序运行在一个受域安全策略控制的一个环境中,任何对dcom的访问通过统一的授权进行.
      

  27.   

    dcomcnfg.exe 中我改了些设置,还是无法远程调试.还是报:
    Server: Msg 514, Level 16, State 1, Procedure sp_sdidebug, Line 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]Unable to communicate with debugger on MDMWEBSERVER (Error = 0x80070005). Debugging disabled for connection 56.