Mssql过程不返回记录

时间:2013-10-18 09:05:28

标签: sql-server procedure

我写了简单的程序,应该返回一些数据。
当我只是替换执行查询并放置SELECT 1它正在返回1。但是当我粘贴EXECUTE查询时,它什么都不返回。
我该怎么办?

ALTER PROCEDURE [dbo].[PTC_Repor] 
    @camp       VARCHAR(50),
    @StartTime  DATETIME,
    @EndTime    DATETIME    
AS
BEGIN

    EXECUTE('
    SELECT      ID,NAME
    FROM        [hpsdb].[dbo]. [' + @camp + ']
    WHERE       IS_CLEAR = 0
    AND     SUCCESS_COUNT = 0 
    AND     DATA_STATUS = 5
    AND     CALL_TIME > ''' + @StartTime + '''
    AND     CALL_TIME <= ''' + @EndTime + '''
 ')

END
GO

1 个答案:

答案 0 :(得分:3)

您可以尝试使用sp_executesql,以便可以直接传递日期时间值,而不是强制它们成为字符串:

declare @Parms nvarchar(max)
set @Parms = '@StartTime datetime, @EndTime datetime'
declare @SQL nvarchar(max)
set @SQL = 'SELECT      ID,NAME
  FROM        [hpsdb].[dbo]. [' + @camp + ']
  WHERE       IS_CLEAR = 0
  AND     SUCCESS_COUNT = 0 
  AND     DATA_STATUS = 5
  AND     CALL_TIME > @StartTime
  AND     CALL_TIME <= @EndTime'

EXEC sp_executesql @SQL,@Prams,@StartTime,@EndTime