在所有的存储过程中我想加一句判断,就是
if getdate()>'2008-1-1'
...
意思就是这些存储过程只能在2008年前运行,以后就不能用了,可是以后我要是想改一下这个日期,可是有三十多个过程,难道每个都要改吗?能不能把这句单独提出来,其它的都包含它呢?
这个简单吧,可是我不会。唉。

解决方案 »

  1.   

    定义一个全局临时变量
    SQL中定义@的变量都是局部变量,而全局变量只可以定义临时的,永久也有,但不是自定义的,是SQL系统自带的
    declare ##Time datetime
    select ##Time=Getdate()每个SP里都用他来取时间就可以了
      

  2.   

    还是不太明白,全局变量在哪定义,我觉得用过程中执行过程可能好点,
    if getdate()> 过程
    这样能行吗?这个过程要能执行的话,需要什么条件?
      

  3.   

    那你只要把取时间的过程设个返回值就行了
    return ...
    然后可以取出时间来比SQL中没有定义全局变量的,只有全局临时变量,或者局部变量,全局变量是@@开关的,有的地方称它为函数,都是SQL系统自带的,当然如果你用SQL 2005可以考虑用CLR来写,那样就方便多了,全局变量就很方便了
      

  4.   

    create procedure returnTime

    as
    set nocount on
    declare @time1 datetime
    select @time1='2007-5-18'
    return @time1
    go怎么这样写不对呢?
      

  5.   

    作一个表,test(a smalldatetime)
    判断用:
    if getdate()>(select a from test)