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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM