下面是我的插入查询,复制并没有发生在已经插入的所有内容中但是在某些情况下发生了,我无法找到找到错误而且我已经被困在这一周,请帮帮我
INSERT INTO Lgen_KYCApprvlDoc
(
Cust_FK,CustCode,PrpslNo,Doc_FK,
RecdDt,RecdBy,DocRefNo,DocRefDt,DocValue,
DocVldUpto,Remarks,DocStage,DocStat,SentFlag,
KYCID,CrtdDt,CrtdBy,LstModDt,LstModBy,ApprvdDt,
ApprvdBy,Mandatory,Validity,DocVerifiedStatus
)
select hdnCustomerId,txtCustId,NULL,Pk,
Nullif(b.ReceivedDate,'') As ReceivedDate,
b.ReceivedBy,b.DocRefNo,
Nullif(b.DocIssuedDate,'') As DocIssuedDate,b.DocValue,
Nullif(B.ValidUpto,'') As
ValidUpto,
b.Remarks,b.strdocstage,b.strdocStatus,NULL,b.hdnCboType,
b.SysDate,b.Userid,b.SysDate,b.Userid,
NULL,NULL,NULL,NULL,NULL
From #Lgen_KYCTable b
Left Outer Join Lgen_KYCApprvlDoc A With(Nolock)
On a.CustCode=B.txtCustid and A.Doc_FK=b.PK
Where B.Strdocstatus='R' and A.PK_Id Is Null
答案 0 :(得分:1)
为了保证表格的唯一性,您需要确保在表格上有唯一约束。
以下是一个示例表:
items (gtin, description, price, ...)
此处GTIN(全球贸易项目编号)将是表格的自然唯一键。您将其设为主键,以确保项目在表格中是唯一的。
有些人更喜欢使用技术ID。所以表格看起来像这样:
items (item_id, gtin, description, price, ...)
这里item_id
可能是主键,因此是唯一的。但是您还要在GTIN上添加一个唯一约束,以确保表中没有重复项。 (您也可以这样做,并将GTIN作为主键,并为item_id
添加唯一约束。)
这也可以是多列,例如有几个电话号码的人:
person_phone (person_phone_id, person_id, phone_number, phone_type)
再次person_phone_id
将是您要引入或未引入的技术ID,但无论如何您需要person_id
+ phone_number
上的唯一约束,以便不会有两个条目对于同一个人和电话号码。
所以你要做的就是找到表中必须唯一的列并添加该约束。 E.g:
ALTER TABLE Lgen_KYCApprvlDoc ADD CONSTRAINT unique_apprvldoc UNIQUE (Cust_FK, Doc_FK);