【问题标题】:SQL Server - An error occurred while executing batch. Error message is: The directory name is invalidSQL Server - 执行批处理时出错。错误信息是:目录名无效
【发布时间】:2010-10-16 20:04:29
【问题描述】:

我们的数据库服务器磁盘空间不足,在释放一些磁盘空间后,在 sql server management studio 中运行任何查询,并将结果发送到网格视图,导致此错误:
执行批处理时出错。错误信息是:目录名无效。

当结果发送到文本视图时,查询工作正常。

有谁知道为什么会出现这个错误以及如何摆脱它?

【问题讨论】:

  • 登录会话大多被塞满导致这个......这是Windows的事情
  • 尝试调试 SSMS 问题时,使用 /log 参数启动 ssms,然后打开 %appdata%\Microsoft\AppEnv\[VERSION]\ActivityLog.xml 并搜索错误。在我的例子中,在 activitylog.xml 中搜索“目录名称无效”发现包含“InternalGetTempFileName”的描述,这暗示了几个用户推荐的解决方案(即确保 %temp% 存在)。

标签: sql sql-server-2005


【解决方案1】:

收到消息:

SQL Server - 执行批处理时出错。错误信息是:目录名无效

在从 c:\documents and settings\administrator\local settings\temp 删除临时文件后尝试在 Management Studio 中执行查询时

退出服务器会话并重新登录时已解决。

此解决方案修复了以下环境中的此错误:

  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2012
  • Sql Server 2005
  • Sql Server 2008
  • Sql Server 2008 R2
  • Sql Server 2012
  • Sql Server 2014
  • Sql Server 2016

【讨论】:

  • 我遇到了同样的问题。注销解决了问题。
  • 对我来说同样的问题,只需退出即可解决问题
  • 当我在将远程 SQL 服务器从 2012 年升级到 2014 年后遇到此问题时,这对我有用。
  • 感谢您发表评论 Dragonsdoom。知道这有助于解决更高版本的 SQL 版本的问题。
  • c:\documents and settings 在 Windows 2012 及更高版本上无法访问,我刚刚注销并登录并解决了
【解决方案2】:

您需要做的就是打开命令提示符并输入: mkdir %temp% 并按 Enter。

就这么简单。无需注销/登录。

【讨论】:

  • 完美运行!
  • 感谢您的帮助。它节省了我的时间:)
【解决方案3】:

我也遇到了同样的问题, 所以要检查这个,我输入了 %temp% ,它给出了一个找不到文件夹的错误 .../temp/2 所以我在临时文件夹中创建了一个文件夹名称 2 并重新启动 sql server。

这对我有用。

【讨论】:

  • 我的也以'/2'结尾。我想知道会添加什么。当我查看环境变量设置时,它上面没有 /2 所以它一定是最近执行的。我猜这就是其他人通过注销来解决此问题的原因。这将重置会话的环境变量。
【解决方案4】:

昨天我在 SQL Management Studio 2014 中尝试打开新查询窗口时遇到了同样的错误“目录名称无效”。它发生在清理(删除)%temp% 文件夹文件之后。

我重新启动了 SQL 服务,但没有运气! 重启服务器后我的问题解决了。

【讨论】:

    【解决方案5】:

    我在 SQL Server 2012 上遇到了类似的问题。我检查了 %TEMP% 变量中的文件夹值(从命令提示符回显 %TEMP%)并注意到该文件夹​​不存在。我创建了文件夹,它成功了!

    【讨论】:

      【解决方案6】:

      我的网络服务器(运行 SQL Server 2012 的 Windows 服务器 r2)上遇到了这个问题

      The directory name is invalid.
      (mscore lib)
      

      注销(终止我的远程会话)并重新登录为我解决了这个问题。

      【讨论】:

        【解决方案7】:

        我在我的 Windows 7 机器上遇到了同样的问题。我实际上在 SQL Server Management Studio 和 Visual Studio 2012 中都遇到了这个错误。我检查了我的临时目录,发现了超过 66,000 个文件。值得注意的是,有大量名为 tmpXXXX.tmp 的文件,其中 XXXX 是一个十六进制数字。问题是文件一直到 tmpFFFF.tmp。因此,创建临时文件的任何内容都没有正确清理它们,最终只是用完了文件。解决方案是删除该文件夹中的所有文件。毫不奇怪,这也大大提高了性能。

        临时文件夹位于:%TEMP%,这对于 XP 和 Win7 都是正确的。

        【讨论】:

          【解决方案8】:

          如果数据库是在 SQL Server 2008 中创建并由 SQL Server 2005 打开的,我会遇到同样的问题。只需在 2008 年重新打开它。

          【讨论】:

            【解决方案9】:

            我长期以来一直面临这个问题.....这个问题的简单答案An error occurred while executing batch. Error message is: The directory name is invalid 只是释放磁盘驱动器空间....我的问题解决了这个问题可能对许多人有帮助更多...

            【讨论】:

              【解决方案10】:

              “保存查询结果的默认位置”是否设置为工具/选项/查询结果/SQL Server/常规中的有效路径?

              TMP/TEMP 环境变量是否指向有效目录?

              重新安装客户端工具可能会解决问题。

              【讨论】:

              • 我从来没有用完磁盘空间,我看到了这个错误,两个问题都是肯定的。
              • 您是否尝试清理临时文件夹?这对我有用。
              【解决方案11】:

              我知道这听起来像是个笑话,但是您是否尝试过重启 SQL Server 实例?

              【讨论】:

              • 我亲自尝试过,但没有帮助。注销/打开修复它。
              猜你喜欢
              • 2018-09-01
              • 2020-04-03
              • 1970-01-01
              • 2016-06-02
              • 1970-01-01
              • 1970-01-01
              • 2013-02-13
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多