//创建存储过程 清空一个表内一段时间的数据
CREATE PROCEDURE  cleartable @starttime datetime,@endtime datetime as
begin
  declare @sql nvarchar(1000)
  set @sql=N'delete from hisdata where savetime between '''+CONVERT(char(19), @starttime, 20) +N''' and '' '+CONVERT(CHAR(19), @endtime, 20) +N''''  
 exec @sql
end
//hisdata表的设计如下
Id    int
value float
state int
savetime datetime
//调用存储过程
exec cleartable '2010-7-28' ,'2010-7-29'
--执行的时候 总是提示
服务器: 消息 2812,级别 16,状态 62,行 14
未能找到存储过程 'delete from hisdata where savetime between '2010-07-28 00:00:00' and ' 2010-07-30 00:00:00''。请问是怎么回事 谢谢

解决方案 »

  1.   

    看看cleartable架构是什么,加上架名试下
    或者
    是不是建到别的库了
      

  2.   

    CREATE PROCEDURE cleartable @starttime datetime,@endtime datetime as
    begin
      declare @sql nvarchar(1000)
      set @sql=N'delete from hisdata where savetime between '''+CONVERT(char(19), @starttime, 20) +N''' and '' '+CONVERT(CHAR(19), @endtime, 20) +N''''   
     exec (@sql)end
      

  3.   

    exec(@sql)
    加上括号,没有括号是调用存储过程
      

  4.   

    exec(@sql)
    加上括号,没有括号是调用存储过程
      

  5.   


    同意见,一般找不到,但又肯定建立了的话。可考虑加上数据库名,架构名来引用exec [Server].[DB_name].[Schema].cleartable '2010-7-28' ,'2010-7-29'