如果您从远程会话启动该程序通过使用后台服务然后再注销控制台会话 FIX:: Osql.exe 实用程序不运行 Transact-SQL 脚本完全

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。

点击这里察看该文章的英文版: 843282
本文已归档。它按“原样”提供,并且不再更新。
BUG #: 471423 (SQL Server 8.0)
Microsoft 分发 Microsoft SQL Server 2000 修补程序作为一个可下载文件。 因为所有安全修补程序是累积修补程序, 每个新版本包含所有修补程序并, 都包含了以前 SQL Server 2000 修复程序版本。
症状
通过使用像 SQLServerAgent 或 Microsoft Windows 任务计划程序, 背景服务如果用户从计算机, 上控制台会话注销您启动 osql 实用程序 (Osql.exe) 后您可能发现, osql 实用工具停止并不不完全运行 Transact-SQL 脚本传递给 osql 实用工具。 即使没有完全运行 Transact-SQL 脚本, osql 实用工具停止后台服务指示作业是否成功。 作为 例如, SQLServerAgent 显示状态。
原因
当用户从控制台会话的计算机, 注销操作系统向 osql 实用工具发送 消息。 如如果 osql 实用工具交互运行控制台会话的计算机中 osql 实用工具处理此消息。 因此, 进程停止。
解决方案

服务包信息

要解决此问题, 获取用于 Microsoft SQL Server 2000 最新 ServicePack。 有关详细信息, 请单击下列文章编号以查看 Microsoft 知识库中相应:
290211 如何获取最新 SQL Server 2000 服务包

修复信息

文件属性 (或更高文件属性) 的此修复程序英文版具有下表中列出。 中协调通用时间 (UTC) 列出日期和时间对这些文件。 当您查看文件信息, 将转换为本地时间。 要查找 UTC 与本地时间, 区别控制面板中日期和时间工具中使用 选项卡。
   Date         Time   Version        Size       File name   ------------------------------------------------------------------   19-Jun-2004  02:44  2000.80.954.0    664,128  Autoplt.dll         19-Jun-2004  02:44  2000.80.954.0     78,400  Console.exe         19-Jun-2004  02:44  2000.80.954.0    315,968  Custtask.dll        19-Jun-2004  02:44  2000.80.954.0     33,340  Dbmslpcn.dll        08-Apr-2004  21:42                   786,432  Distmdl.ldf   08-Apr-2004  21:42                 2,359,296  Distmdl.mdf   10-Oct-2003  18:48                       180  Drop_repl_hotfix.sql   19-Jun-2004  02:44  2000.80.954.0  1,905,216  Dtspkg.dll          19-Jun-2004  02:44  2000.80.954.0    528,960  Dtspump.dll         19-Jun-2004  02:44  2000.80.954.0  1,557,052  Dtsui.dll           19-Jun-2004  02:44  2000.80.954.0    639,552  Dtswiz.dll          10-Oct-2003  18:48                   747,927  Instdist.sql   10-Oct-2003  18:48                     1,581  Inst_repl_hotfix.sql   19-Jun-2004  02:44  2000.80.954.0    352,828  Isqlw.exe           19-Jun-2004  02:44  2000.80.954.0     82,492  Itwiz.exe           19-Jun-2004  02:44  2000.80.954.0     90,692  Msgprox.dll         19-May-2004  23:43  8.11.40209.0     209,408  Mssdi98.dll         19-Jun-2004  02:44  2000.80.954.0     62,024  Odsole70.dll        19-Jun-2004  02:45  2000.80.954.0     25,144  Opends60.dll        19-Jun-2004  02:44  2000.80.954.0     57,904  Osql.exe            19-Jun-2004  02:44  2000.80.954.0    279,104  Pfutil80.dll        10-Oct-2003  18:37                   550,780  Procsyst.sql   08-Apr-2004  21:42                    12,305  Qfe469315.sql   08-Apr-2004  21:42                    19,195  Qfe469571.sql   17-Jun-2004  15:12                 1,105,167  Replmerg.sql   19-Jun-2004  02:44  2000.80.954.0    221,768  Replprov.dll        19-Jun-2004  02:44  2000.80.954.0    307,784  Replrec.dll         17-Jun-2004  02:37  2000.80.954.0    159,813  Replres.rll   10-Oct-2003  18:48                 1,087,150  Replsys.sql   10-Oct-2003  18:48                   986,603  Repltran.sql   19-Jun-2004  02:44  2000.80.954.0    287,304  Rinitcom.dll        19-Jun-2004  02:44  2000.80.954.0     78,416  Sdiclnt.dll         19-Jun-2004  02:44  2000.80.954.0     66,112  Semmap.dll          19-Jun-2004  02:44  2000.80.954.0     57,916  Semnt.dll           19-Jun-2004  02:44  2000.80.954.0    492,096  Semobj.dll          17-Jun-2004  03:14  2000.80.954.0    172,032  Semobj.rll   19-Jun-2004  02:44  2000.80.954.0     53,832  Snapshot.exe        12-Mar-2004  03:10                   117,834  Sp3_serv_uni.sql   19-Jun-2004  02:43  2000.80.954.0     28,672  Sqlagent.dll        19-Jun-2004  02:44  2000.80.954.0    311,872  Sqlagent.exe        19-Jun-2004  02:43  2000.80.954.0    168,001  Sqlakw32.dll        19-Jun-2004  02:44  2000.80.954.0     33,344  Sqlctr80.dll        19-Jun-2004  02:44  2000.80.954.0  4,215,360  Sqldmo.dll          19-Jun-2004  02:44                    25,172  Sqldumper.exe       17-Jun-2004  02:24  2000.80.954.0     28,672  Sqlevn70.rll   19-Jun-2004  02:44  2000.80.954.0    180,792  Sqlmap70.dll        19-Jun-2004  02:44  2000.80.954.0    188,992  Sqlmmc.dll          17-Jun-2004  03:22  2000.80.954.0    479,232  Sqlmmc.rll   19-Jun-2004  02:44  2000.80.954.0    401,984  Sqlqry.dll          19-Jun-2004  02:44  2000.80.954.0     57,920  Sqlrepss.dll        19-Jun-2004  02:44  2000.80.954.0  7,581,777  Sqlservr.exe        19-Jun-2004  02:44  2000.80.954.0    590,396  Sqlsort.dll         19-Jun-2004  02:44  2000.80.954.0     45,644  Sqlvdi.dll          19-Jun-2004  02:44  2000.80.954.0    106,588  Sqsrvres.dll        19-Jun-2004  02:44  2000.80.954.0     33,340  Ssmslpcn.dll        19-Jun-2004  02:44  2000.80.954.0     82,492  Ssnetlib.dll        19-Jun-2004  02:44  2000.80.954.0     25,148  Ssnmpn70.dll        19-Jun-2004  02:44  2000.80.954.0    123,456  Stardds.dll         19-Jun-2004  02:44  2000.80.954.0    158,240  Svrnetcn.dll        19-Jun-2004  02:44  2000.80.954.0     76,416  Svrnetcn.exe        19-Jun-2004  02:44  2000.80.954.0     49,228  Ums.dll             19-Jun-2004  02:44  2000.80.954.0     98,872  Xpweb70.dll      				
注意 由于文件相关性, 的最新修复程序包含这些文件可能包含其他文件。
状态
Microsoft 已确认这是 " 适用于 " 一节中列出 Microsoft 产品中存在问题。 此问题首先早在 Microsoft SQL Server 2000 Service Pack 4 中得到了解决。
更多信息

重现行为步骤

  1. 打开计算机的终端服务器客户会话。
  2. 启动记事本。
  3. 在记事本, 编写为长时间运行 Transact-SQL 脚本。 例如, 使用以下 Transact-SQL 脚本具有无限循环:
    declare @variable intset @variable= 2while (@variable > 1)beginprint @variableset @variable= @variable + 1end
  4. 将脚本保存为 \Test.sql。

    注意 InstallationDrive 是占位符代表默认安装驱动器上。
  5. 终端服务器客户会话, 中通过下列方法之一启动 osql 实用工具:
    • 使用 Windows 任务计划程序
      1. 在控制面板, 打开计划任务。
      2. 在 菜单, 指向 , 然后单击 。
      3. 双击以打开 对话框 。
      4. 在 框中, 键入以下命令:
        "InstallationDrive:\Program Files\Microsoft SQL Server\80\Tools\Binn\Osql.exe" -E -i InstallationDrive:\Test.sql
        注意 InstallationDrive 是占位符代表默认安装驱动器上。
      5. 在 框中, 键入 InstallationDrive:\Program Files\Microsoft SQL Server\80\Tools\Binn.
      6. 在 选项卡, 更改计划计时, 然后单击 。
      7. 对话框中, 键入用户帐户和密码是您登录帐户, 然后单击 。
      8. 右击作业, 您创建, 然后单击 。
      9. 运行计划任务, 时登录到控制台会话, 然后再从计算机上控制台会话注销。
    • 使用 SQLServer 代理
      1. 启动 SQLServer 企业管理器。
      2. 展开注册的 SQLServer 实例。
      3. 服务器名称, 下展开 , 然后展开 。
      4. 在 , 右击 , 然后单击 。
      5. 在 选项卡, 在 框中键入作业名称。
      6. 在 选项卡, 单击 。
      7. 在 选项卡, 在 框中键入步骤名称。
      8. 在 列表, 单击 。
      9. 在 框中, 键入 "InstallationDrive:\Program Files\Microsoft SQL Server\80\Tools\Binn\Osql.exe" -E -i InstallationDrive:\Test.sql -o InstallationDrive:\Test.txt 然后单击 。

        注意 InstallationDrive 是占位符代表默认安装驱动器上。
      10. 新作业属性 - 对话框中, 单击 。
      11. 右击作业, 您创建, 然后单击 。
      12. 作业运行时登录到控制台会话, 然后再从计算机上控制台会话注销。
    发现注销控制台会话的计算机时已停止计划任务或 SQLServer 代理作业。 还发现, 计划任务或 SQLServer 代理报告成功获取作业的状态。
参考
请, 有关访问下列 Microsoft Developer Network (MSDN) Web 站点:

警告:本文已自动翻译

属性

文章 ID:843282 - 上次审阅时间:12/08/2015 07:32:12 - 修订版本: 3.2

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition 64-bit

  • kbnosurvey kbarchive kbbug kbfix kbkern32dll kbqfe kbsqlserv2000presp4fix kbhotfixserver KB843282 KbMtzh kbmt
反馈