繁体   English   中英

SQL Server 2008中的更新使“ 0行受到影响”

[英]UPDATE in SQL Server 2008 getting '0 rows affected'

我已多次更改此查询,但仍然看到'0行受到影响。 一切都在SELECT语句中起作用,但在UPDATE失败。

这是查询:

UPDATE tblVisitLog 
SET tblVisitLog.TimeOUT = (SELECT CAST(SUBSTRING(tblScheduleData.E_Time, 1,2 ) + ':' + SUBSTRING(tblScheduleData.E_Time, 3,2) + ':00.000' AS datetime)
                           FROM tblScheduleData 
                           WHERE tblVisitLog.Encounter_code = tblScheduleData.Encounter_code),
    tblVisitLog.Provider = (SELECT Provider 
                            FROM tblScheduleData s 
                            WHERE tblVisitLog.Encounter_code = s.Encounter_code), 
    tblVisitLog.recStatus = 0,
    tblVisitLog.Printed = N'N'
WHERE 
    tblVisitLog.TimeOUT IS NULL 
    AND tblVisitLog.Provider IS NULL 

数据类型为:

Encounter_code (int, null)
TimeOUT (datetime, null)
Provider (nvarchar(50), null)
recStatus (smallint, not null)
Printed (nvarchar(50), null)

我要更新的值都是NULL,我从tblScheduleData.E_Time中提取的值是varchar(4), null ,格式为“ 1045”。

您的更新声明将是此处使用联接的很多清洁器。 这样的事情。

UPDATE vl 
SET TimeOUT = CAST(SUBSTRING(s.E_Time, 1,2 )+ ':' + SUBSTRING(s.E_Time, 3,2) + ':00.000' AS datetime)
    , Provider = s.Provider 
    , recStatus = 0
    , Printed = N'N'
from tblVisitLog vl
join tblScheduleData s on vl.Encounter_code = s.Encounter_code
WHERE vl.TimeOUT Is NULL 
    AND vl.Provider Is Null

消息很清楚, '0 rows affected' ,请尝试执行此查询,您将看到一个空结果

select * from   tblVisitLog 
WHERE TimeOUT Is NULL AND Provider Is Null

首先更改标准

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM