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

  • 相关阅读:
    hibernate中session的获取使用以及其他注意事项
    博文收集
    struts1标签-<html:radio> 使用注意事项
    HTTP 状态码含义
    基于eclipse搭建android开发环境-win7 32bit
    MySQL数据库之数据类型
    mysql数据库之基本增删改查
    mysql数据库之表的操作
    协程(单线程实现并发)
    线程
  • 原文地址:https://www.cnblogs.com/xiaowy/p/476753.html
Copyright © 2011-2022 走看看