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中,写函数时,参数一定不要忘了给范围大小,上次遇到这个问题查了我好久啊!~不知道其它数据库会不会也这样!

  • 相关阅读:
    NW.js开发环境的搭建
    EXPORTS与MODULE.EXPORTS的区别
    搭建 webpack + React 开发环境
    require,import区别?
    数据库中图片的二进制存储和显示
    二进制图片存储问题
    单线程(Thread)与多线程的区别
    软件测试心得--悲催我
    2015年-年度总结
    人生当中第一次转正
  • 原文地址:https://www.cnblogs.com/xiaowy/p/476753.html
Copyright © 2011-2022 走看看