Sql例子Sp_ExecuteSql 带参数

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

 

转载于:https://www.cnblogs.com/ustcyc/p/3661605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值