zoukankan      html  css  js  c++  java
  • 发现一个Exec执行执行存储过程的问题

     Set @SqlstrGetCount = 'SELECT  @TotalRowsCount = COUNT(*) FROM EventLog where '
     
    DECLARE @ParameterDefinition Nvarchar(4000)
     
    SET @ParameterDefinition = ' 
           @TotalRowsCount  int ,
           @EventLogType tinyint,
           @Category nvarchar(20),
           @UserName nvarchar(20),
           @BeginTime dateTime,
           @EndTime dateTime
    '
     
    EXEC  sp_executesql @SqlstrGetCount@ParameterDefinition ,@TotalRowsCount ,@EventLogType,@Category,@UserName,@BeginTime,@EndTime

      发现 
    @TotalRowsCount 始终为0 ,百思不得其解,后来只好换为:

     
    Set @SqlstrGetCount = 'SELECT  COUNT(*) as TotalRowsCount  FROM EventLog where '
     
    DECLARE @ParameterDefinition Nvarchar(4000)
     
    SET @ParameterDefinition = ' 
         @EventLogType tinyint,
         @Category nvarchar(20),
         @UserName nvarchar(20),
         @BeginTime dateTime,
         @EndTime dateTime
    '
     
    EXEC  sp_executesql @SqlstrGetCount@ParameterDefinition ,@EventLogType,@Category,@UserName,@BeginTime,@EndTime

    在MS SQL中,写函数时,参数一定不要忘了给范围大小,上次遇到这个问题查了我好久啊!~不知道其它数据库会不会也这样!

  • 相关阅读:
    效能分析
    四人小组项目--连连看的设计与实现
    每周工作量及进度统计(第三周)
    四则运算改进版
    词频统计改进版1
    SCRUM站立会议
    四则运算
    效能分析
    四人小组项目的需求和功能等描述
    通读构建之法
  • 原文地址:https://www.cnblogs.com/xiaowy/p/476753.html
Copyright © 2011-2022 走看看