如果您从远程会话启动该程序通过使用后台服务然后再注销控制台会话 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 实用工具停止后台服务指示作业是否成功。 作为 Succeeded 例如, SQLServerAgent 显示状态。

原因

当用户从控制台会话的计算机, 注销操作系统向 osql 实用工具发送 CTRL_LOGOFF_EVENT 消息。 如如果 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 int
    set @variable= 2
    while (@variable > 1)
    begin
    print @variable
    set @variable= @variable + 1
    end
  4. 将脚本保存为 InstallationDrive \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. 服务器名称, 下展开 Management , 然后展开 SQLServerAgent 。
      4. 在 SQLServer 代理程序 , 右击 Jobs , 然后单击 新建作业 。
      5. 在 常规 选项卡, 在 名称 框中键入作业名称。
      6. 在 步骤 选项卡, 单击 新建 。
      7. 在 常规 选项卡, 在 步骤名称 框中键入步骤名称。
      8. 在 类型 列表, 单击 操作系统命令 (CmdExec) 。
      9. 在 命令 框中, 键入 "InstallationDrive:\Program Files\Microsoft SQL Server\80\Tools\Binn\Osql.exe" -E -i InstallationDrive:\Test.sql -o InstallationDrive:\Test.txt 然后单击 确定 。

        注意 InstallationDrive 是占位符代表默认安装驱动器上。
      10. 新作业属性 - SQLServerName 对话框中, 单击 确定 。
      11. 右击作业, 您创建, 然后单击 启动作业 。
      12. 作业运行时登录到控制台会话, 然后再从计算机上控制台会话注销。
    发现注销控制台会话的计算机时已停止计划任务或 SQLServer 代理作业。 还发现, 计划任务或 SQLServer 代理报告成功获取作业的状态。

参考

请, 有关访问下列 Microsoft Developer Network (MSDN) Web 站点:
运行使用 osql Transact-SQL 脚本文件
http://msdn2.microsoft.com/en-us/library/aa213087(SQL.80).aspx

SetConsoleCtrlHandler
http://msdn2.microsoft.com/en-us/library/ms686016.aspx

HandlerRoutine
http://msdn2.microsoft.com/en-us/library/ms683242.aspx

属性

文章编号: 843282 - 最后修改: 2007年11月2日 - 修订: 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
关键字:?
kbbug kbfix kbkern32dll kbqfe kbsqlserv2000presp4fix kbhotfixserver KB843282 KbMtzh kbmt
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。
点击这里察看该文章的英文版: 843282
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com