我有一个包含4列的表,在将行插入数据库之前,我需要检查列对是否存在:
INSERT INTO dbo.tblCallReport_Detail (fkCallReport, fkProductCategory, Discussion, Action) VALUES (?, ?, ?, ?)
有问题的对是fkCallReport
和fkProductCategory
。
例如,如果尝试插入的行包含fkCallReport = 3
和fkProductCategory = 5
,并且数据库已经同时具有这两个值,则应显示错误并询问
如果他们想将Disuccsion和Action与当前记录结合起来。
请记住,我在VBA Access 2010中执行此操作并且仍然非常新。
答案 0 :(得分:1)
只需将它们设置为主键(我认为复合键是正确的术语)。然后,您需要一个独特的组合来添加到表格中。
答案 1 :(得分:0)
我能想到的两个选择:
首先是在数据库本身中创建复合主键。
其次是条件插入。基本上使用select count(*) where fkCallReport=var1 and fkProductCategory=var2
和数据库的条件运算符。 MSSqL if
Oracle when
不确定Access
如果允许设置主键,请使用复合键。更好的练习,让您远离棘手的情况
答案 2 :(得分:0)
您可以在字段fkCallReport和fkProductCategory上添加复合唯一索引。