在asp.net中 怎么调用这个没有参数的存储过程  实现把Temp表中不重复数据插入到Clock表中 
我想单击按钮执行这个存储过程
存储过程代码: 
create procedure proc_Addtab 
(@ID int, 
@AssessID varchar(20), 
@ClockTime varchar(20), 
@Time varchar(20), 
@Late varchar(20)) 
as declare @count int 
declare cur_test cursor  for select * from Temp open cur_test fetch cur_test into (@ID,@AssessID,@ClockTime,@Time,@Late) 
while(@@fetch_status=0) 
begin 
select @count = count(*) from Temp where AssessID = @AssessID and [Time]=@Time 
if @count =  0 
begin 
insert into Clock 
values(@ID,@AssessID,@ClockTime,@Time,@Late)   commit 
fetch next from cur_test into @ID,@AssessID,@ClockTime,@Time,@Late 
end 
close cur_test 
deallocate cur_test 
end 

解决方案 »

  1.   

    proc_Addtab过程是有参数的,你也没有给参数提供默认值.故在调用时必须提供参数.如果调用时候执行的语句和参数无关.
    可以使所有参数改为有默认值,如下:
    create procedure proc_Addtab 
    (@ID int=0, 
    @AssessID varchar(20)=null, 
    @ClockTime varchar(20)=null, 
    @Time varchar(20)=null, 
    @Late varchar(20)=null) 
    as declare @count int 
    declare cur_test cursor  for select * from Temp open cur_test fetch cur_test into (@ID,@AssessID,@ClockTime,@Time,@Late) 
    while(@@fetch_status=0) 
    begin 
    select @count = count(*) from Temp where AssessID = @AssessID and [Time]=@Time 
    if @count =  0 
    begin 
    insert into Clock 
    values(@ID,@AssessID,@ClockTime,@Time,@Late)   commit 
    fetch next from cur_test into @ID,@AssessID,@ClockTime,@Time,@Late 
    end 
    close cur_test 
    deallocate cur_test 
    end 
      

  2.   


    create proc CopyTable
    as
        insert into table1 select * from table2
    go