Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将表单中的数据插入表中_Sql_Sql Insert - Fatal编程技术网

Sql 将表单中的数据插入表中

Sql 将表单中的数据插入表中,sql,sql-insert,Sql,Sql Insert,我有一个表“Invoices”,其中包含UserID、PurchaseOrderID和InvoiceRef字段,它们都不是主键 我想创建一个表格,在表格中粘贴发票信息,然后单击按钮VBA运行并将数据粘贴到发票表格中。我能做的最多,但我不能理解的SQL部分是如何防止重复,所谓重复,我指的是具有UserID、PurchaseOrderID和InvoiceRef的发票,这些发票已经存在于发票表中,例如发票表已经包含: UserID | PurchaseOrderID | InvoiceRef

我有一个表“Invoices”,其中包含
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);
所以,当你们插入一条记录时,若三列的组合存在,它就不允许你们插入那个条记录