高分求一存储过程
ALTER PROCEDURE db_owner.edittzsm
@uid int
AS
declare @sql varchar(500)
if exists (select * from userlicai where uid=@uid and DATEDIFF(d,[date],DATEADD(hh,6,getdate()))=0)
begin
set @sql=insert into userlicai(uid,[date]) values(@uid,DATEADD(hh,6,getdate()))
if DATEPART(ww,DATEADD(hh,6,getdate()))=7
set @sql=insert into userlicai(uid,[date]) values(@uid,DATEADD(hh,54,getdate()))
if DATEPART(ww,DATEADD(hh,6,getdate()))=1
begin
if not exists(select * from userlicai where uid=@uid and DATEDIFF(d,[date],DATEADD(hh,30,getdate()))=0)
set @sql=insert into userlicai(uid,[date]) values(@uid,DATEADD(hh,30,getdate()))
end
end
exec @sql
总是报错,请高手帮帮忙!
------解决方案--------------------ALTER PROCEDURE db_owner.edittzsm
@uid int
AS
declare @sql varchar(500)
if exists (select * from userlicai where uid=@uid and DATEDIFF(d,[date],DATEADD(hh,6,getdate()))=0)
begin
set @sql= 'insert into userlicai(uid,[date]) values( '+rtrim(@uid)+ ',DATEADD(hh,6,getdate())) '
if DATEPART(ww,DATEADD(hh,6,getdate()))=7
set @sql= 'insert into userlicai(uid,[date]) values( '+rtrim(@uid)+ ',DATEADD(hh,54,getdate())) '
if DATEPART(ww,DATEADD(hh,6,getdate()))=1
begin
if not exists(select * from userlicai where uid=@uid and DATEDIFF(d,[date],DATEADD(hh,30,getdate()))=0)
set @sql= 'insert into userlicai(uid,[date]) values( '+rtrim(@uid)+ ',DATEADD(hh,30,getdate())) '
end
end
exec @sql
------解决方案--------------------ALTER PROCEDURE db_owner.edittzsm
@uid int
AS
declare @sql varchar(500)
if exists (select * from userlicai where uid=@uid and DATEDIFF(d,[date],DATEADD(hh,6,getdate()))=0)
begin
set @sql= 'insert into userlicai(uid,[date]) values( '+cast(@uid as varchar)+ ', ' ' '+cast(DATEADD(hh,6,getdate()) as varchar)+ ' ' ') '
if DATEPART(ww,DATEADD(hh,6,getdate()))=7
set @sql= 'insert into userlicai(uid,[date]) values( '+cast(@uid as varchar)+ ', ' ' '+cast(DATEADD(hh,54,getdate()) as varchar)+ ' ' ') '
if DATEPART(ww,DATEADD(hh,6,getdate()))=1
begin
if not exists(select * from userlicai where uid=@uid and DATEDIFF(d,[date],DATEADD(hh,30,getdate()))=0)
set @sql= 'insert into userlicai(uid,[date]) values( '+cast(@uid as varchar)+ ', ' '