将表单中的数据插入表中

时间:2018-05-23 14:59:55

标签: sql sql-insert

我有一个表'发票',其中包含UserIDPurchaseOrderIDInvoiceRef字段,它们都不是主键。

我想创建一个带有表格的表单,我在其中粘贴发票信息,然后单击按钮VBA运行并将数据粘贴到Invoices表中。我能做的最多但是我无法理解的SQL部分是如何防止重复,重复我是指UserIDPurchaseOrderIDInvoiceRef的发票已经存在于{ {1}}表,例如,如果Invoices表已经包含:

Invoices

它将插入:

UserID  | PurchaseOrderID |  InvoiceRef  
10001   | PO123123        |  9991

但不是:

UserID  | PurchaseOrderID |  InvoiceRef  
10001   | PO123123        |  9992

下面是我正在玩的SQL,但是我遇到了WHERE子句:

UserID  | PurchaseOrderID |  InvoiceRef  
10001   | PO123123        |  9991

2 个答案:

答案 0 :(得分:3)

ALTER TABLE INVOICES
  ADD CONSTRAINT <name u wish> UNIQUE(UserID, PurchaseOrderID,InvoiceRef);

所以,它的作用是每当你插入一条记录时,如果存在三列的组合,就不会让你插入那条记录。

答案 1 :(得分:2)

如果您只是想避免重复写入,请创建索引:

create unique nonclustered index x on INVOICES (UID, POID, REFID) with (ignore_dup_key=on);

这将不允许插入重复项(选项ignore_dup_key=on执行此操作)