Sql 将表单中的数据插入表中
我有一个表“Invoices”,其中包含Sql 将表单中的数据插入表中,sql,sql-insert,Sql,Sql Insert,我有一个表“Invoices”,其中包含UserID、PurchaseOrderID和InvoiceRef字段,它们都不是主键 我想创建一个表格,在表格中粘贴发票信息,然后单击按钮VBA运行并将数据粘贴到发票表格中。我能做的最多,但我不能理解的SQL部分是如何防止重复,所谓重复,我指的是具有UserID、PurchaseOrderID和InvoiceRef的发票,这些发票已经存在于发票表中,例如发票表已经包含: UserID | PurchaseOrderID | InvoiceRef
UserID
、PurchaseOrderID
和InvoiceRef
字段,它们都不是主键
我想创建一个表格,在表格中粘贴发票信息,然后单击按钮VBA运行并将数据粘贴到发票
表格中。我能做的最多,但我不能理解的SQL部分是如何防止重复,所谓重复,我指的是具有UserID
、PurchaseOrderID
和InvoiceRef
的发票,这些发票已经存在于发票
表中,例如发票
表已经包含:
UserID | PurchaseOrderID | InvoiceRef
10001 | PO123123 | 9991
它将插入:
UserID | PurchaseOrderID | InvoiceRef
10001 | PO123123 | 9992
但不是:
UserID | PurchaseOrderID | InvoiceRef
10001 | PO123123 | 9991
下面是我正在使用的SQL,但我被WHERE子句卡住了:
INSERT INTO INVOICES
(UID, POID, REFID)
SELECT IMPORT.UID,
IMPORT.POID,
IMPORT.REFID
FROM INVOICES
WHERE NOT EXISTS(STUCK HERE)
如果您只是想避免重复写入,请创建索引:
create unique nonclustered index x on INVOICES (UID, POID, REFID) with (ignore_dup_key=on);
这将不允许插入重复项(选项
ignore\u dup\u key=on
执行此操作)如果您只是想避免重复写入,请创建索引:
create unique nonclustered index x on INVOICES (UID, POID, REFID) with (ignore_dup_key=on);
这将不允许插入重复项(选项ignore\u dup\u key=on
执行此操作)更改表格发票
添加约束唯一性(UserID、PurchaseOrderID、InvoiceRef);
所以,它的作用是,每当您插入一条记录时,若三列的组合存在,它就不允许您插入该记录。ALTER TABLE INVOICES
添加约束唯一性(UserID、PurchaseOrderID、InvoiceRef);
所以,当你们插入一条记录时,若三列的组合存在,它就不允许你们插入那个条记录