我想确保对表中的每个插入都增加ID列。
我试过这句话:
INSERT INTO Anlagenteil (ID, TaId, Subtype, Name)
VALUES (MAX(ID)+1, 0, 'BdAnlageteil', 'Barcodeleser0');
不幸的是我收到此错误消息:
Msg 207, Level 16, State 1, Line 1
Invalid column name 'ID'.
答案 0 :(得分:9)
使用这样的嵌套查询:
INSERT INTO Anlagenteil (ID, TaId, Subtype, Name)
VALUES ((SELECT ISNULL(MAX(ID) + 1, 1) FROM Anlagenteil), 0, 'BdAnlageteil', 'Barcodeleser0');
答案 1 :(得分:1)
无效的列名称“ID”。
这表示您根本没有ID
列。
您应该将此列添加到表中,并将其设置为自动递增,而不是自己编写逻辑来执行此操作。
正如@Damien_The_Unbeliever指出的那样,如果2个人同时运行脚本,这可能会导致问题。
ALTER TABLE Anlagenteil
ADD ID INT IDENTITY(1,1)
然后您的SQL语句可以是:
INSERT INTO Anlagenteil (TaId, Subtype, Name)
VALUES (0, 'BdAnlageteil', 'Barcodeleser0')
将自动添加新的ID值。