FIX: SP:StmtStarting 事件和 SP:StmtCompleted 事件 TextData 该列显示动态的 TRANSACT-SQL 语句,即使加密的存储的过程

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

点击这里察看该文章的英文版: 825883
本文已归档。它按“原样”提供,并且不再更新。
症状
您在运行一个加密的存储的过程运行动态 TRANSACT-SQL 语句时您可能会注意到 SP:StmtStarting 事件和 SP:StmtCompleted 事件在 SQL 事件探查器工具中的 TextData 列显示动态的 TRANSACT-SQL 语句。
解决方案

服务包信息

若要解决此问题,获得最新的 service pack,对于 Microsoft SQL Server 2000。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211如何获取最新的 SQL Server 2000 服务包

修补程序信息

此修补程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   Date         Time   Version        Size        File name   -------------------------------------------------------------------   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe   25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll   25-Apr-2003  02:12                    786,432  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll   23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll   24-Apr-2003  02:51                    747,927  Instdist.sql   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll   01-Apr-2003  02:07                      1,873  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll   07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll   07-May-2003  18:47                    132,096  Opends60.pdb   02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe   02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll   22-May-2003  22:57                     19,195  Qfe469571.sql   12-Jun-2003  16:37                  1,083,989  Replmerg.sql   04-Apr-2003  21:53  2000.80.798.0     221,768  Replprov.dll   08-Feb-2003  06:40  2000.80.765.0     307,784  Replrec.dll   05-May-2003  00:05                  1,085,874  Replsys.sql   01-Jun-2003  01:01  2000.80.818.0     492,096  Semobj.dll   31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll   29-May-2003  00:29                    115,944  Sp3_serv_uni.sql   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll   07-Apr-2003  17:44                     25,172  Sqldumper.exe   19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll   02-Jul-2003  00:18  2000.80.834.0     180,736  Sqlmap70.dll   08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll   23-Jun-2003  22:40  2000.80.837.0   7,553,105  Sqlservr.exe   23-Jun-2003  22:40                 12,747,776  Sqlservr.pdb   08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll   25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll   01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll   01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll   01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll   31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe   30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll   30-Apr-2003  23:52                    132,096  Ums.pdb   02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll				
注意由于存在文件依赖性最新的修补程序或功能,它包含这些文件可能还包含其他文件。
状态
Microsoft 已经确认这是本文"适用于"一节中列出的 Microsoft 产品中的问题。Microsoft SQL Server 2000 Service Pack 4 中,第一次已得到纠正此问题。
更多信息

重现行为的步骤

  1. 启动 SQL 查询分析器中,然后连接到运行 Microsoft SQL Server 的计算机。
  2. 运行下面的 TRANSACT-SQL 语句来创建 sp_MytestencryptionWithExecsp_MytestencryptionNoExec 存储过程:
    use northwindgodrop proc sp_MytestencryptionWithExecgoCREATE PROCEDURE [dbo].[sp_MytestencryptionWithExec]WITH ENCRYPTIONASDECLARE @MySQL varchar(100)BEGIN-- SET @MySQL = 'select @@version'-- EXEC(@MySql)EXEC('select @@version')ENDGOdrop proc sp_MytestencryptionNoExecgoCREATE PROCEDURE [dbo].[sp_MytestencryptionNoExec]WITH ENCRYPTIONASDECLARE @MySQL varchar(100)BEGINselect @@versionENDGO
    笔记sp_MytestencryptionWithExec 存储过程具有动态 TRANSACT-SQL 语句。sp_MytestencryptionNoExec 存储过程不具有任何动态的 TRANSACT-SQL 语句。
  3. 启动 SQL 事件探查器以捕获 SP:StmtStarting 事件和 SP:StmtCompleted 事件。若要这样做,请按照下列步骤操作:
    1. 启动 SQL 事件探查器。
    2. 文件 菜单上指向 新建,然后单击 跟踪
    3. 连接到 SQL Server 对话框中提供身份验证信息以连接到运行 SQL Server 的计算机,然后单击 确定
    4. 跟踪属性 对话框中单击 事件 选项卡。
    5. 可用事件类 列表中展开 存储过程
    6. 存储过程,展开 SP:StmtCompleted,然后单击 添加。同样,添加 SP:StmtStarting 事件。
    7. 单击 运行
  4. 在查询分析器中运行下面的 TRANSACT-SQL 语句:
    Use northwindgoExec sp_MytestencryptionWithExecgoExec sp_MytestencryptionNoExecGo
  5. 在 SQL 设置单击在 文件 菜单上的 停止跟踪

    注意您可能会注意到 TextDataSP:StmtStartingSP:StmtCompleted 事件的显示动态的 TRANSACT-SQL 语句,尽管存储的过程 sp_MytestencryptionWithExec 被加密。

属性

文章 ID:825883 - 上次审阅时间:01/17/2015 05:20:45 - 修订版本: 3.2

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

  • kbnosurvey kbarchive kbmt kbstoredproc kbqfe kbsqlserv2000presp4fix kbfix kbbug KB825883 KbMtzh
反馈