惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
罗磊的独立博客
SecWiki News
SecWiki News
The Register - Security
The Register - Security
The GitHub Blog
The GitHub Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
IT之家
IT之家
博客园 - 聂微东
T
The Exploit Database - CXSecurity.com
Recorded Future
Recorded Future
大猫的无限游戏
大猫的无限游戏
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Vercel News
Vercel News
G
GRAHAM CLULEY
D
DataBreaches.Net
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
SegmentFault 最新的问题
博客园_首页
雷峰网
雷峰网
T
Tenable Blog
Spread Privacy
Spread Privacy
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
V
Visual Studio Blog
J
Java Code Geeks
博客园 - Franky
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
C
CERT Recently Published Vulnerability Notes
T
Threatpost
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
Recent Announcements
Recent Announcements
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
U
Unit 42
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
K
Kaspersky official blog
有赞技术团队
有赞技术团队
B
Blog
腾讯CDC

博客园 - Jacker.W

sql2008分区表相关SQL语句 (机加类)生产计划管理系统介绍 c# 自定义甘特表格控件 (原创 学习中请指导) MasterCam9 CNC程序文件转刀单 程序 关闭UPD123、1900、137、138和TCP135、139、445、3389端口的方法 - Jacker.W - 博客园 网络不存在或尚未启动的解决方法 关于幸福 这两天怎么了? 古名人们啊,该你们站起来澄清的时候到了! 《财经法规与会计职业道德》学习小记(一) 《会计基础》学习小记(一) 芙蓉障里人工湖 可怜的包法利夫人 奥运年来了 教你如何防范电脑病毒入侵 今天学习灭火,灭火演习正上演 “嫦娥一号”可以证明美国当年登月是否属实 晒晒可恶垃圾短信 征烧烤广告宣传图
sql经典语句
Jacker.W · 2015-08-27 · via 博客园 - Jacker.W

  经典SQL语句,便于记忆,仅供参考。

1、SQL查询重复记录

  Select max(id),col1,col2,COUNT(*) From Table group by col1,col2 having COUNT(*)>1

2、SQL删除重得记录,仅留一条记录

  delete from Table where ID in (Select max(id) From Table group by col1,col2)

3、SQL将一个表中数据批量插入另一个表中

  3.1 插入已存在的Table1表中 

      insert into Table1(col1,col2,col3)  select col1,col2,col3 from Table2    

  3.2 插入不存在的Table1表中  

      select col1,col2,col3 into Table1 from Table2

4、SQL从Table2表中抓取数据,批量修改Table1中数据

  update Table1 set col1 in (select col1 from Table2 where col2=Table1.col2)  where col3='条件内容'

5、SQL产生临时表,仅获取某个表的表结构  

  select * into #TempTable  FROM Table1 WHERE 1<>1

6、SQL存储过程,写过比较长的存储过程

  USE [Database]
  GO
  SET ANSI_NULLS ON
  GO
  SET QUOTED_IDENTIFIER ON
  GO
-- =============================================
-- Author:  <Jacker.W>
-- Create date: <2015-1-10>
-- Description: <增加修改调整每日计划产能信息>
-- =============================================
   Create PROCEDURE [dbo].[InsUpdPTS]
   @ptsNo varchar(8000), --设备人工编号
   @ptsUse int, --是否启用(0或-1) 默认为-1,即启用
   @ptsUnit nvarchar(5), --计时单位
   @ptsPD nvarchar(4000), --计划日期
   @ptsDayMaxDCP nvarchar(4000),--白班最大产能
   @ptsNightMaxDCP nvarchar(4000),--晚班最大产能
   @ptsDayDCP nvarchar(4000),--白班可用产能
   @ptsNightDCP nvarchar(4000),--晚班可用产能
   @ptsTactics int, --计划策略(0不超且跳过已有产能,1可超且跳过已有产能,2不超且覆盖已有产能,3可超且覆盖已有产能)
   @ptsDayDTH float, --白班计划时长
   --白班各段时间设置(上半段正班)
   @CTS01_S2DAY int,
   @CTS01_E2DAY int,
   @CTS01_ST nvarchar(5),
   @CTS01_ET nvarchar(5),
   @CTS01_DTH float,
   @CTS01_USE int,
   --白班各段时间设置(午休)
   @CTS02_S2DAY int,
   @CTS02_E2DAY int,
   @CTS02_ST nvarchar(5),
   @CTS02_ET nvarchar(5),
   @CTS02_DTH float,
   @CTS02_USE int,
   --白班各段时间设置(下半段正班)
   @CTS03_S2DAY int,
   @CTS03_E2DAY int,
   @CTS03_ST nvarchar(5),
   @CTS03_ET nvarchar(5),
   @CTS03_DTH float,
   @CTS03_USE int,
   --白班各段时间设置(晚休)
   @CTS04_S2DAY int,
   @CTS04_E2DAY int,
   @CTS04_ST nvarchar(5),
   @CTS04_ET nvarchar(5),
   @CTS04_DTH float,
   @CTS04_USE int,
   --白班各段时间设置(加班)
   @CTS05_S2DAY int,
   @CTS05_E2DAY int,
   @CTS05_ST nvarchar(5),
   @CTS05_ET nvarchar(5),
   @CTS05_DTH float,
   @CTS05_USE int,
   @ptsNightDTH float, --晚班计划时长
   --晚班各段时间设置(上半段正班)
   @CTS11_S2DAY int,
   @CTS11_E2DAY int,
   @CTS11_ST nvarchar(5),
   @CTS11_ET nvarchar(5),
   @CTS11_DTH float,
   @CTS11_USE int,
   --晚班各段时间设置(午休)
   @CTS12_S2DAY int,
   @CTS12_E2DAY int,
   @CTS12_ST nvarchar(5),
   @CTS12_ET nvarchar(5),
   @CTS12_DTH float,
   @CTS12_USE int,
   --晚班各段时间设置(下半段正班)
   @CTS13_S2DAY int,
   @CTS13_E2DAY int,
   @CTS13_ST nvarchar(5),
   @CTS13_ET nvarchar(5),
   @CTS13_DTH float,
   @CTS13_USE int,
   --晚班各段时间设置(晚休)
   @CTS14_S2DAY int,
   @CTS14_E2DAY int,
   @CTS14_ST nvarchar(5),
   @CTS14_ET nvarchar(5),
   @CTS14_DTH float,
   @CTS14_USE int,
   --晚班各段时间设置(加班)
   @CTS15_S2DAY int,
   @CTS15_E2DAY int,
   @CTS15_ST nvarchar(5),
   @CTS15_ET nvarchar(5),
   @CTS15_DTH float,
   @CTS15_USE int,
   @ptsCAName nvarchar(30), --登记人或最后修改人
   @ptsDate datetime --登记日期或最后修改日期
    AS
begin TRANSACTION
       declare @curResNO nvarchar(13)
       declare @curDayMaxDCP float
   declare @curNightMaxDCP float
   declare @curDayDCP float
   declare @curNightDCP float
   declare @curPD date
 
   declare @posRN int
   declare @posRN1 int
   declare @posRN2 int
 
   declare @posDMP int
   declare @posDMP1 int
   declare @posDMP2 int
 
   declare @posNMP int
   declare @posNMP1 int
   declare @posNMP2 int
 
   declare @posDP int
   declare @posDP1 int
   declare @posDP2 int
 
   declare @posNP int
   declare @posNP1 int
   declare @posNP2 int
 
   declare @posPD int
   declare @posPD1 int
   declare @posPD2 int
 
   declare @endN int
      DECLARE @errorSum int
    set @errorsum=0
      set @endN=1
   
      set @posRN=1
      set @posDMP=1
      set @posNMP=1
      set @posDP=1
      set @posNP=1
    --产生临时表结构
  select * into #TempPTS  FROM Set_MSResPlan_List WHERE 1<>1
    set @errorSum=@errorSum+@@ERROR
  while @endN>=1
    begin
     --获取设备人工编号
     set @posRN1 = CHARINDEX('[',@ptsNo,@posRN)
     set @posRN2 = CHARINDEX(']',@ptsNo,@posRN)
     if @posRN1>0 and @posRN2>0 and @posRN2>@posRN1
       begin
      set @posRN=@posRN2+1
      set @curResNO=SUBSTRING(@ptsNo,@posRN1+1,@posRN2-@posRN1-1)
      --获取白班最大产能
      set @posDMP1 = CHARINDEX('[',@ptsDayMaxDCP,@posDMP)
      set @posDMP2 = CHARINDEX(']',@ptsDayMaxDCP,@posDMP)
      set @posDMP=@posDMP2+1
      set @curDayMaxDCP=cast(SUBSTRING(@ptsDayMaxDCP,@posDMP1+1,@posDMP2-@posDMP1-1) as float)
      --获取白班可用产能
      set @posDP1 = CHARINDEX('[',@ptsDayDCP,@posDP)
      set @posDP2 = CHARINDEX(']',@ptsDayDCP,@posDP)
      set @posDP=@posDP2+1
      set @curDayDCP=cast(SUBSTRING(@ptsDayDCP,@posDP1+1,@posDP2-@posDP1-1) as float)
      --获取晚班最大产能
      set @posNMP1 = CHARINDEX('[',@ptsNightMaxDCP,@posNMP)
      set @posNMP2 = CHARINDEX(']',@ptsNightMaxDCP,@posNMP)
      set @posNMP=@posNMP2+1
      set @curNightMaxDCP=cast(SUBSTRING(@ptsNightMaxDCP,@posNMP1+1,@posNMP2-@posNMP1-1) as float)
      --获取晚班可用产能
      set @posNP1 = CHARINDEX('[',@ptsNightDCP,@posNP)
      set @posNP2 = CHARINDEX(']',@ptsNightDCP,@posNP)
      set @posNP=@posNP2+1
      set @curNightDCP=cast(SUBSTRING(@ptsNightDCP,@posNP1+1,@posNP2-@posNP1-1) as float)
      --获取计划日期
      set @posPD=1
      set @posPD1 = CHARINDEX('[',@ptsPD,@posPD)
      set @posPD2 = CHARINDEX(']',@ptsPD,@posPD)
      set @posPD=@posPD2+1
      set @curPD=cast(SUBSTRING(@ptsPD,@posPD1+1,@posPD2-@posPD1-1) as date)
      --开始加载数据    
      while @posPD1>0 and  @posPD2>0 and @posPD2>@posPD1
        begin --白班
           if @ptsDayDTH>0 and @curDayMaxDCP>0 and @curDayDCP>0
               begin
          if @ptsTactics=0 and @ptsDayDTH<=@curDayDCP
            begin
              if not exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='白班')
                 begin
                 insert into #tempPTS  (MS_ResNo,Plan_Use,Plan_Date,Plan_Class,Plan_Units,Plan_DTH,Plan_Creator,Plan_CD,CTS01_S2DAY,CTS01_E2DAY,CTS01_ST,CTS01_ET,CTS01_DTH,CTS01_USE,CTS02_S2DAY,CTS02_E2DAY,CTS02_ST,CTS02_ET,CTS02_DTH,CTS02_USE,CTS03_S2DAY,CTS03_E2DAY,CTS03_ST,CTS03_ET,CTS03_DTH,CTS03_USE,CTS04_S2DAY,CTS04_E2DAY,CTS04_ST,CTS04_ET,CTS04_DTH,CTS04_USE,CTS05_S2DAY,CTS05_E2DAY,CTS05_ST,CTS05_ET,CTS05_DTH,CTS05_USE) 
           values(@curResNO,@ptsUse,@curPD,'白班',@ptsUnit,@ptsDayDTH,@ptsCAName,@ptsDate,
               @CTS01_S2DAY,@CTS01_E2DAY ,@CTS01_ST ,@CTS01_ET ,@CTS01_DTH,@CTS01_USE ,
               @CTS02_S2DAY,@CTS02_E2DAY ,@CTS02_ST ,@CTS02_ET ,@CTS02_DTH,@CTS02_USE ,
               @CTS03_S2DAY,@CTS03_E2DAY ,@CTS03_ST ,@CTS03_ET ,@CTS03_DTH,@CTS03_USE ,
               @CTS04_S2DAY,@CTS04_E2DAY ,@CTS04_ST ,@CTS04_ET ,@CTS04_DTH,@CTS04_USE ,
               @CTS05_S2DAY,@CTS05_E2DAY ,@CTS05_ST ,@CTS05_ET ,@CTS05_DTH,@CTS05_USE )
               set @errorSum=@errorSum+@@ERROR
               end
            end
           if @ptsTactics=1  and @ptsDayDTH<=@curDayMaxDCP
                 begin
             if not exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='白班')
              begin
                insert into #tempPTS(MS_ResNo,Plan_Use,Plan_Date,Plan_Class,Plan_Units,Plan_DTH,Plan_Creator,Plan_CD,CTS01_S2DAY,CTS01_E2DAY,CTS01_ST,CTS01_ET,CTS01_DTH,CTS01_USE,CTS02_S2DAY,CTS02_E2DAY,CTS02_ST,CTS02_ET,CTS02_DTH,CTS02_USE,CTS03_S2DAY,CTS03_E2DAY,CTS03_ST,CTS03_ET,CTS03_DTH,CTS03_USE,CTS04_S2DAY,CTS04_E2DAY,CTS04_ST,CTS04_ET,CTS04_DTH,CTS04_USE,CTS05_S2DAY,CTS05_E2DAY,CTS05_ST,CTS05_ET,CTS05_DTH,CTS05_USE) 
           values(@curResNO,@ptsUse,@curPD,'白班',@ptsUnit,@ptsDayDTH,@ptsCAName,@ptsDate,
               @CTS01_S2DAY,@CTS01_E2DAY ,@CTS01_ST ,@CTS01_ET ,@CTS01_DTH,@CTS01_USE ,
               @CTS02_S2DAY,@CTS02_E2DAY ,@CTS02_ST ,@CTS02_ET ,@CTS02_DTH,@CTS02_USE ,
               @CTS03_S2DAY,@CTS03_E2DAY ,@CTS03_ST ,@CTS03_ET ,@CTS03_DTH,@CTS03_USE ,
               @CTS04_S2DAY,@CTS04_E2DAY ,@CTS04_ST ,@CTS04_ET ,@CTS04_DTH,@CTS04_USE ,
               @CTS05_S2DAY,@CTS05_E2DAY ,@CTS05_ST ,@CTS05_ET ,@CTS05_DTH,@CTS05_USE )
               set @errorSum=@errorSum+@@ERROR
               end
          end  
          if @ptsTactics=2 and @ptsDayDTH <=@curDayDCP
          begin
            if exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='白班')
            begin
               Update Set_MSResPlan_List set Plan_Use=@ptsUse,Plan_Units=@ptsUnit,Plan_DTH=@ptsDayDTH,Plan_Alter=@ptsCAName,Plan_MD=@ptsDate,       CTS01_S2DAY=@CTS01_S2DAY,CTS01_E2DAY=@CTS01_E2DAY,CTS01_ST=@CTS01_ST,CTS01_ET=@CTS01_ET,CTS01_DTH=@CTS01_DTH,CTS01_USE=@CTS01_USE,
       CTS02_S2DAY=@CTS02_S2DAY,CTS02_E2DAY=@CTS02_E2DAY,CTS02_ST=@CTS02_ST,CTS02_ET=@CTS02_ET,CTS02_DTH=@CTS02_DTH,CTS02_USE=@CTS02_USE,
      CTS03_S2DAY=@CTS03_S2DAY,CTS03_E2DAY=@CTS03_E2DAY,CTS03_ST=@CTS03_ST,CTS03_ET=@CTS03_ET,CTS03_DTH=@CTS03_DTH,CTS03_USE=@CTS03_USE,      CTS04_S2DAY=@CTS04_S2DAY,CTS04_E2DAY=@CTS04_E2DAY,CTS04_ST=@CTS04_ST,CTS04_ET=@CTS04_ET,CTS04_DTH=@CTS04_DTH,CTS04_USE=@CTS04_USE,
  CTS05_S2DAY=@CTS05_S2DAY,CTS05_E2DAY=@CTS05_E2DAY,CTS05_ST=@CTS05_ST,CTS05_ET=@CTS05_ET,CTS05_DTH=@CTS05_DTH,CTS05_USE=@CTS05_USE
           where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='白班'
           set @errorSum=@errorSum+@@ERROR
         end
      end
      if @ptsTactics=3  and @ptsDayDTH<=@curDayMaxDCP
   begin
      if exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='白班')
      begin
        Update Set_MSResPlan_List set Plan_Use=@ptsUse,Plan_Units=@ptsUnit,Plan_DTH=@ptsDayDTH,Plan_Alter=@ptsCAName,Plan_MD=@ptsDate,
        CTS01_S2DAY=@CTS01_S2DAY,CTS01_E2DAY=@CTS01_E2DAY,CTS01_ST=@CTS01_ST,CTS01_ET=@CTS01_ET,CTS01_DTH=@CTS01_DTH,CTS01_USE=@CTS01_USE,
        CTS02_S2DAY=@CTS02_S2DAY,CTS02_E2DAY=@CTS02_E2DAY,CTS02_ST=@CTS02_ST,CTS02_ET=@CTS02_ET,CTS02_DTH=@CTS02_DTH,CTS02_USE=@CTS02_USE,
        CTS03_S2DAY=@CTS03_S2DAY,CTS03_E2DAY=@CTS03_E2DAY,CTS03_ST=@CTS03_ST,CTS03_ET=@CTS03_ET,CTS03_DTH=@CTS03_DTH,CTS03_USE=@CTS03_USE,
        CTS04_S2DAY=@CTS04_S2DAY,CTS04_E2DAY=@CTS04_E2DAY,CTS04_ST=@CTS04_ST,CTS04_ET=@CTS04_ET,CTS04_DTH=@CTS04_DTH,CTS04_USE=@CTS04_USE,
        CTS05_S2DAY=@CTS05_S2DAY,CTS05_E2DAY=@CTS05_E2DAY,CTS05_ST=@CTS05_ST,CTS05_ET=@CTS05_ET,CTS05_DTH=@CTS05_DTH,CTS05_USE=@CTS05_USE
           where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='白班'
           set @errorSum=@errorSum+@@ERROR
         end
      end
    end
    --加载晚班     
    if @ptsNightDTH>0 and @curNightMaxDCP>0 and @curNightDCP>0
    begin
   if @ptsTactics=0 and @ptsNightDTH<=@curNightDCP
   begin
     if not exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='晚班')
     begin
          insert into #tempPTS(MS_ResNo,Plan_Use,Plan_Date,Plan_Class,Plan_Units,Plan_DTH,Plan_Creator,Plan_CD,CTS01_S2DAY,CTS01_E2DAY,CTS01_ST,CTS01_ET,CTS01_DTH,CTS01_USE,CTS02_S2DAY,CTS02_E2DAY,CTS02_ST,CTS02_ET,CTS02_DTH,CTS02_USE,CTS03_S2DAY,CTS03_E2DAY,CTS03_ST,CTS03_ET,CTS03_DTH,CTS03_USE,CTS04_S2DAY,CTS04_E2DAY,CTS04_ST,CTS04_ET,CTS04_DTH,CTS04_USE,CTS05_S2DAY,CTS05_E2DAY,CTS05_ST,CTS05_ET,CTS05_DTH,CTS05_USE)
          values(@curResNO,@ptsUse,@curPD,'晚班',@ptsUnit,@ptsNightDTH,@ptsCAName,@ptsDate,
          @CTS11_S2DAY,@CTS11_E2DAY ,@CTS11_ST ,@CTS11_ET ,@CTS11_DTH,@CTS11_USE ,
          @CTS12_S2DAY,@CTS12_E2DAY ,@CTS12_ST ,@CTS12_ET ,@CTS12_DTH,@CTS12_USE ,
          @CTS13_S2DAY,@CTS13_E2DAY ,@CTS13_ST ,@CTS13_ET ,@CTS13_DTH,@CTS13_USE ,
          @CTS14_S2DAY,@CTS14_E2DAY ,@CTS14_ST ,@CTS14_ET ,@CTS14_DTH,@CTS14_USE ,
          @CTS15_S2DAY,@CTS15_E2DAY ,@CTS15_ST ,@CTS15_ET ,@CTS15_DTH,@CTS15_USE )
          set @errorSum=@errorSum+@@ERROR
        end
      end 
      if @ptsTactics=1 and @ptsNightDTH<=@curNightMaxDCP
   begin
        if not exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='晚班')
     begin  
          insert into #tempPTS(MS_ResNo,Plan_Use,Plan_Date,Plan_Class,Plan_Units,Plan_DTH,Plan_Creator,Plan_CD,CTS01_S2DAY,CTS01_E2DAY,CTS01_ST,CTS01_ET,CTS01_DTH,CTS01_USE,CTS02_S2DAY,CTS02_E2DAY,CTS02_ST,CTS02_ET,CTS02_DTH,CTS02_USE,CTS03_S2DAY,CTS03_E2DAY,CTS03_ST,CTS03_ET,CTS03_DTH,CTS03_USE,CTS04_S2DAY,CTS04_E2DAY,CTS04_ST,CTS04_ET,CTS04_DTH,CTS04_USE,CTS05_S2DAY,CTS05_E2DAY,CTS05_ST,CTS05_ET,CTS05_DTH,CTS05_USE)
          values(@curResNO,@ptsUse,@curPD,'晚班',@ptsUnit,@ptsNightDTH,@ptsCAName,@ptsDate,
          @CTS11_S2DAY,@CTS11_E2DAY ,@CTS11_ST ,@CTS11_ET ,@CTS11_DTH,@CTS11_USE ,
          @CTS12_S2DAY,@CTS12_E2DAY ,@CTS12_ST ,@CTS12_ET ,@CTS12_DTH,@CTS12_USE ,
          @CTS13_S2DAY,@CTS13_E2DAY ,@CTS13_ST ,@CTS13_ET ,@CTS13_DTH,@CTS13_USE ,
          @CTS14_S2DAY,@CTS14_E2DAY ,@CTS14_ST ,@CTS14_ET ,@CTS14_DTH,@CTS14_USE ,
          @CTS15_S2DAY,@CTS15_E2DAY ,@CTS15_ST ,@CTS15_ET ,@CTS15_DTH,@CTS15_USE )
          set @errorSum=@errorSum+@@ERROR
        end
      end 
      if @ptsTactics=2 and @ptsNightDTH<=@curNightDCP
   begin
     if exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='晚班')
     begin
          Update Set_MSResPlan_List set Plan_Use=@ptsUse,Plan_Units=@ptsUnit,Plan_DTH=@ptsDayDTH,Plan_Alter=@ptsCAName,Plan_MD=@ptsDate,
        CTS01_S2DAY=@CTS11_S2DAY,CTS01_E2DAY=@CTS11_E2DAY,CTS01_ST=@CTS11_ST,CTS01_ET=@CTS11_ET,CTS01_DTH=@CTS11_DTH,CTS01_USE=@CTS11_USE,
        CTS02_S2DAY=@CTS12_S2DAY,CTS02_E2DAY=@CTS12_E2DAY,CTS02_ST=@CTS12_ST,CTS02_ET=@CTS12_ET,CTS02_DTH=@CTS12_DTH,CTS02_USE=@CTS12_USE,
        CTS03_S2DAY=@CTS13_S2DAY,CTS03_E2DAY=@CTS13_E2DAY,CTS03_ST=@CTS13_ST,CTS03_ET=@CTS13_ET,CTS03_DTH=@CTS13_DTH,CTS03_USE=@CTS13_USE,
        CTS04_S2DAY=@CTS14_S2DAY,CTS04_E2DAY=@CTS14_E2DAY,CTS04_ST=@CTS14_ST,CTS04_ET=@CTS14_ET,CTS04_DTH=@CTS14_DTH,CTS04_USE=@CTS14_USE,
        CTS05_S2DAY=@CTS15_S2DAY,CTS05_E2DAY=@CTS15_E2DAY,CTS05_ST=@CTS15_ST,CTS05_ET=@CTS15_ET,CTS05_DTH=@CTS15_DTH,CTS05_USE=@CTS15_USE
           where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='晚班'
           set @errorSum=@errorSum+@@ERROR
        end
      end 
      if @ptsTactics=3 and @ptsNightDTH<=@curNightMaxDCP
   begin
        if exists(select Plan_Date from Set_MSResPlan_List where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='晚班')
     begin  
          Update Set_MSResPlan_List set Plan_Use=@ptsUse,Plan_Units=@ptsUnit,Plan_DTH=@ptsDayDTH,Plan_Alter=@ptsCAName,Plan_MD=@ptsDate,
        CTS01_S2DAY=@CTS11_S2DAY,CTS01_E2DAY=@CTS11_E2DAY,CTS01_ST=@CTS11_ST,CTS01_ET=@CTS11_ET,CTS01_DTH=@CTS11_DTH,CTS01_USE=@CTS11_USE,
        CTS02_S2DAY=@CTS12_S2DAY,CTS02_E2DAY=@CTS12_E2DAY,CTS02_ST=@CTS12_ST,CTS02_ET=@CTS12_ET,CTS02_DTH=@CTS12_DTH,CTS02_USE=@CTS12_USE,
        CTS03_S2DAY=@CTS13_S2DAY,CTS03_E2DAY=@CTS13_E2DAY,CTS03_ST=@CTS13_ST,CTS03_ET=@CTS13_ET,CTS03_DTH=@CTS13_DTH,CTS03_USE=@CTS13_USE,
        CTS04_S2DAY=@CTS14_S2DAY,CTS04_E2DAY=@CTS14_E2DAY,CTS04_ST=@CTS14_ST,CTS04_ET=@CTS14_ET,CTS04_DTH=@CTS14_DTH,CTS04_USE=@CTS14_USE,
        CTS05_S2DAY=@CTS15_S2DAY,CTS05_E2DAY=@CTS15_E2DAY,CTS05_ST=@CTS15_ST,CTS05_ET=@CTS15_ET,CTS05_DTH=@CTS15_DTH,CTS05_USE=@CTS15_USE
           where MS_ResNo=@curResNO and Plan_Date=@curPD and Plan_Class='晚班'
           set @errorSum=@errorSum+@@ERROR
        end
      end   
    end
    --计划日期循环
    set @posPD1 = CHARINDEX('[',@ptsPD,@posPD)
    set @posPD2 = CHARINDEX(']',@ptsPD,@posPD)
    set @posPD=@posPD2+1
    set @curPD=cast(SUBSTRING(@ptsPD,@posPD1+1,@posPD2-@posPD1-1) as date)  
  end
   end
   else
   begin
  set @endN=0
   end
 end
 if @ptsTactics=0 or @ptsTactics=1
 begin
   insert into  Set_MSResPlan_List  select * FROM #TempPTS
   set @errorSum=@errorSum+@@ERROR
 end
 drop table  #TempPTS
 set @errorSum=@errorSum+@@ERROR
if @errorSum<>0
  begin
    rollback
  end
else
  begin
    commit TRANSACTION
  end