create procedure dt_ae108dataset @dd_date datetime,@dm int as
if not exists(select * from Aed108 where month(dd_date)=month(@dd_date))
 insert into aed108 values (@dd_date,@dm)

解决方案 »

  1.   

    CREATE  PROCEDURE dbo.dt_Ae108DataSet  
    @a datetime,
    @b int
    as
    if not exists(select 1 from aed108 where datediff(month,dd_date,@a)=0)
      insert aed108 (dd_dat,dm) values(@a,@b)
      

  2.   

    CREATE  PROCEDURE dbo.dt_Ae108DataSet  
    @dd_date datetime,
    @dm int
    as
    if not exists(select 1 from Aed108 where year(dd_date)=year(@dd_date) and month(dd_date)=month(@dd_date))
    while @dd_date>=dateadd(month,-1,dateadd(dd,1,@dd_date))
    begin
    insert Aed108 select @dd_date,@dm
    set @dd_date=@dd_date-1
    end
      

  3.   

    bigddaddy(隐者) ,1、我说本月,还要排除年的问题啊,当然可以这么写
    if not exists( select * from Aed108 
       where year(dd_date) like datepart(year,@dt_userdate) 
       AND month(dd_date) like datepart(month,@dt_userdate))2、但关键的是下面,你写的是加入这一天的数据,我的意思是加入一个月的,例如9月,那么就要加入1~30天30条记录!日期分别是2003-09-01~2003-09-30啊,同样10月的话就加入1~31天31条数据啊
      

  4.   

    pengdali(大力 V3.0),写的也只是加入1天的啊
      

  5.   

    create procedure dt_ae108dataset 
    @dd_date datetime,@dm int 
    as
    declare @n tinyint,@dd datetime
    select @n=1
    if not exists(select * from Aed108 where month(dd_date)=month(@dd_date))
    begin 
    /*先计算出该月得第一天*/
    select @dd=dateadd(month,-1,dateadd(day,1,@dd_date))
    while  @n<=day(@dd_date)
    begin
    insert into aed108 select @dd,@dm
    select @n=@n+1
    /*望后加一天*/
    select @dd=dateadd(day,1,@dd)
    end
    end
    --run
    exec dt_ae108dataset '2003-09-30',具体数值
      

  6.   

    create procedure dt_ae108dataset 
    @dd_date datetime,@dm int 
    as
    declare @dd datetime
    if not exists(select * from Aed108 where month(dd_date)=month(@dd_date))
    begin 
    /*先计算出该月得第一天*/
    select @dd=dateadd(month,-1,dateadd(day,1,@dd_date))
    while datediff(day,@dd,@dd_date)<=0
    begin
    insert into aed108 select @dd,@dm
    /*望后加一天*/
    select @dd=dateadd(day,1,@dd)
    end
    end
    --run,记得输入月份得最后一天
    exec dt_ae108dataset '2003-09-30',具体数值
      

  7.   


    pengdali(大力 V3.0), 的也是只加入了这一天啊,sdhdy(大江东去...) ,的提示:错误213:出入错误;列名或提供的数目也表定义不匹配其它朋友的我还在试,谢谢大家帮忙
      

  8.   

    aierong(皑婀瑢-数据库XML.NET联盟会处长)写的提示:错误260:Disallowed implicit conversion from data type datetime to data type int ,table 'ssmis.dbo.aed108'.use the convert function to run this query另外,在表中再加几个列,例如dx1,dxwv....这些列都是可以为空的列。加入时不必赋值。各位写的都没通过啊,怎么办啊