Sql例子Sp_ExecuteSql 带参数

时间:2021-10-01 02:27:12
Declare @i int, @projectCount int
Declare @Sqlstr NVarchar(400)
--参数
Declare @projectid Varchar(20)
Declare @SubmitOrNot Varchar(20)
declare @NotSubmitReason Varchar(1000)
declare @NotSubmitNote Varchar(1000)
Declare @usestatus Varchar(10)
Declare @ProjectName Varchar(200)
--循环变量起始
set @i = 0
--得到所有的项目
select @projectCount = count(projectid) from t_project_manage
print @projectcount
--开始循环每一行
while @i < @projectCount
begin
Set @Sqlstr = 'Select top 1 @projectid = projectid, @projectName=projectName, @Usestatus=usestatus,@NotSubmitReason=NotSubmitReason, @NotSubmitNote=NotSubmitNote
from V_ProjectWeeklyReportNotSubmit Where projectid not in
(Select top ' + Str(@i) + 'projectid from V_ProjectWeeklyReportNotSubmit where SubmitOrNot = 0 or SubmitOrNot is null)'
Exec Sp_ExecuteSql @Sqlstr,N'@projectid Varchar(500) OutPut,@ProjectName Varchar(200) OutPut,@usestatus Varchar(10) OutPut,
@NotSubmitReason Varchar(1000) OutPut, @NotSubmitNote Varchar(1000) OutPut',
@projectid Output, @ProjectName Output,@usestatus Output,
@NotSubmitReason Output, @NotSubmitNote Output
Select @projectid,@ProjectName,@usestatus, @NotSubmitReason, @NotSubmitNote --一行一行把职工号显示出来
begin
--插入未提交表
insert into [dbo].[T_Project_Weekly_Report_NotSubmit]
([ProjectID] ,[WeekStartDate] ,[SubmitDate] ,[NotSubmitReason] ,[NotSubmitNote])
values
(@projectid, dateadd(day, -7, getdate()), getdate(), @NotSubmitReason, @NotSubmitNote)
end
--print @projectid
set @i = @i+1
end