我想确保表中的每个插入都会增加 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'.
我想确保表中的每个插入都会增加 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'.
像这样使用嵌套查询:
INSERT INTO Anlagenteil (ID, TaId, Subtype, Name)
VALUES ((SELECT ISNULL(MAX(ID) + 1, 1) FROM Anlagenteil), 0, 'BdAnlageteil', 'Barcodeleser0');
列名“ID”无效。
这表明您根本没有ID
专栏。
您应该将此列添加到表中,并将其设置为自动递增,而不是自己编写逻辑来执行此操作。
正如@Damien_The_Unbeliever所指出的,如果两个人同时运行脚本,这可能会导致问题。
ALTER TABLE Anlagenteil
ADD ID INT IDENTITY(1,1)
那么你的 SQL 语句可以是:
INSERT INTO Anlagenteil (TaId, Subtype, Name)
VALUES (0, 'BdAnlageteil', 'Barcodeleser0')
并且会自动添加新的 ID 值。