SQL查询成功,但没有对表进行任何更改

  • 本文关键字:任何更 成功 查询 SQL sql
  • 更新时间 :
  • 英文 :


我有以下问题。我运行这个请求,它成功通过,但它说"0(受影响的行)"。总之,我想做什么。我试图编写一个查询,将元素添加到主表中因为我链接了子表我试图检索id并将它们放入主表

INSERT INTO Articles
([ID],
[ArtName],
[ArtType],
[SerNo],
[MACNo],
[UserID],
[Available],
[CityID],
[StoreID],
[WorkplaceID],
[ItemPrice],
[IP_01],
[IP_02],
[Note])
SELECT 
(SELECT max([ID])+1 FROM Articles),
'HP',
art.ID,
'123',
'А18Н31',
u.ID,
av.ID,
c.ID ,
s.ID,
w.ID,
'14.23',
'192.168.11.3',
'192.168.11.3',
GetDate()
FROM Articles a
INNER JOIN Workplace w ON a.WorkplaceID = w.ID
INNER JOIN Store s ON a.StoreID = s.ID
INNER JOIN City c ON a.CityID = c.ID
INNER JOIN Avaiable av ON a.Available = av.ID
INNER JOIN Users u ON a.UserID = u.ID
INNER JOIN ArtType art ON a.ArtType = art.ID 
WHERE c.CityName LIKE '%Sofia%' AND art.ArtTypeName LIKE '%FirstType%' AND s.StoreName LIKE '%First%' AND av.AvaiableName LIKE '%yes%' AND u.UserName LIKE '%Valq%' AND w.WorkplaceName LIKE '%FWorkplace%'

显示" 0行受影响";因为SELECT不返回任何行。这可能是因为没有匹配的JOINs。这可能是因为WHERE子句过滤掉了所有行。没有样本数据,就无法判断。你必须调查你自己。

也就是说,这是非常可疑的:

(SELECT max([ID])+1 FROM Articles),

这不是在表中使用增量id的正确方式。您应该使用identity列。或者可能默认为一个序列。在任何一种情况下,id的值都将在插入行时自动设置。

还请注意,如果插入多行,所有行都将得到相同的id,这可能不是您想要的。

最新更新