Как избежать дублирования записей при массовой вставке в таблицу с помощью openxml в SQL?
Я хочу избежать дублирования записей при массовой вставке в таблицу в SQL. Я передаю XML в качестве входного параметра и вставляю его с помощью OpenXml
Что я уже пробовал:
EXEC sp_xml_preparedocument @docHandle OUTPUT, @ip_XML BEGIN TRY BEGIN TRAN SET @op_error_code = 0; IF(@ip_Status ='I') BEGIN INSERT INTO ACH_OUTWARD_Files ( FileName , FileType , Status , CreatedDate ) SELECT indx.FileName , '102_OUTWARD_ACH' , indx.Mode , GETDATE() FROM OPENXML(@docHandle, '/WPS/MDL_ACH_Outward_Details',2)WITH ( FileName varchar(100) ,FileType varchar(50) , Mode varchar(1) , CreatedDate DateTime ) EXEC sp_xml_removedocument @docHandle END
Bryian Tan
Не уверен, насколько велика таблица и производительность, но вы можете попробовать добавить предложение where: WHERE indx. FileName NOT IN (SELECT FileName FROM ACH_OUTWARD_Files )