thank you i solved.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
alter procedure [dbo].[sp_insertstaffattendence](
@staffid varchar(50),
@name varchar(50),
@date datetime,
@morningstatus char,
@eveningstatus char,
@type varchar(20)
) as
begin
if(@type = 'insert')
begin
declare @subject as varchar(50), @acadamicyear as varchar(20), @stmt as varchar(max)
set @subject='demo'
set @acadamicyear = '2012_2013'
set @stmt= 'insert into sc_staffattendence'+@acadamicyear+'(StaffId,Name,Date,Morningstatus,Eveningstatus,Subject,status) values('''+@staffid+''','''+@name+''','''+convert(varchar(50),@date)+''','''+@morningstatus+''','''+@eveningstatus+''','''+@subject+''',''Y'')'
select @stmt
end
else
begin
exec('update sc_staffattendence'+@acadamicyear+' set Morningstatus='+@morningstatus+',Eveningstatus='+@eveningstatus+' where StaffId='+@staffid+' and year(Date)=year('+@date+') and month(Date)=month('+@date+') and day(Date)=day('+@date+')')
end
end