C# 返回where子句中找不到的数据,并且未返回';sql中的t更新
在一个c#桌面应用程序中,我将通过条形码读取到文本文件中的数据列表;这是结果C# 返回where子句中找不到的数据,并且未返回';sql中的t更新,c#,sql,sql-server,string,text,C#,Sql,Sql Server,String,Text,在一个c#桌面应用程序中,我将通过条形码读取到文本文件中的数据列表;这是结果 R900, 27674T07, 27438T17, 27736T21, 26609T08, R901, 27770T12, 27833T07, 26402T12, 27771T09, 26003T13, R902, 26003T14, 26402T11, 26246T17, R904, 28055T09, 25356T08, 25825T07, 25556T09, 我正在将其转换为更新查询 UPDATE
R900, 27674T07, 27438T17, 27736T21, 26609T08,
R901, 27770T12, 27833T07, 26402T12, 27771T09, 26003T13,
R902, 26003T14, 26402T11, 26246T17,
R904, 28055T09, 25356T08, 25825T07, 25556T09,
我正在将其转换为更新查询
UPDATE TABLE SET NUMBER = R900 WHERE id in ( 27674T07, 27438T17, 27736T21, 26609T08)
UPDATE TABLE SET NUMBER = R901 WHERE id in ( 27770T12, 27833T07, **26402T12**, **27771T09**, 26003T13)
UPDATE TABLE SET NUMBER = R902 WHERE id in ( 26003T14, **26402T11**, 26246T17)
UPDATE TABLE SET NUMBER = R904 WHERE id in ( 28055T09, 25356T08, 25825T07, **25556T09**)
最后,我执行这个SQL查询。但问题是我不知道在数据库的in子句中找不到哪个id。我需要向用户报告没有找到的id及其编号
例如,在数据库中找不到粗体id,因此无法更新。因此,预期结果是:
NUMBER id
R901 26402T12
R901 27771T09
R902 26402T11
R903 25556T09
我怎样才能退回这个呢?你可以这样做
declare @mytable as TABLE
(
Id nvarchar(20)
)
UPDATE TABLE SET NUMBER = R900
OUTPUT INSERTED.Id into @mytable
WHERE id in ( 27674T07, 27438T17, 27736T21, 26609T08)
Select * from @mytable
@mytable
将仅包含更新的ID
希望这有帮助。创建一个临时表,将拆分后的值存储到其中 然后
我真的很喜欢这个答案,虽然我没有使用。非常感谢你的回答。
SELECT temp.number, temp.Id
FROM #temp temp
LEFT OUTER JOIN TABLE ON temp.id = TABLE.id
WHERE TABLE.id is null