我有以下代码,我目前正在构建以限制数据库中数据插入的重复。不幸的是,它遇到了一些错误。我搜索并尝试了几种组合,但不知何故,我无法正确使用它。
sSQL = "INSERT INTO tblTableMenu "
sSQL &= "(MenuID, MenuPosition) "
sSQL &= "VALUES ('" & sValue & "', " & i + 1 & ") "
sSQL &= "WHERE NOT EXISTS(SELECT 1 FROM tblTableSettings WHERE MenuID = '" &
sValue & "')"
上面的代码是这样写的:
INSERT INTO tblTableMenu (MenuID, MenuPosition)
VALUES ('SAMPLE', 1)
WHERE NOT EXISTS(SELECT 1 FROM tblTableSettings WHERE MenuID = 'SAMPLE')
答案 0 :(得分:1)
T-SQL中的INSERT
命令 NOT 允许WHERE
子句。您需要检查第一个,如果您确实想要插入,则只需触发INSERT
。
你需要做这样的事情:
IF NOT EXISTS(SELECT 1 FROM tblTableSettings WHERE MenuID = 'SAMPLE')
INSERT INTO tblTableMenu (MenuID, MenuPosition)
VALUES ('SAMPLE', 1)
但是,NOT EXISTS()
检查tblTableSettings
,而INSERT
实际上违反tblTableMenu
表格,这似乎很奇怪..... >故意,或只是疏忽?