我正在将一个 xml 字符串传递给 SQL Server 中的存储过程,以便将 10000 条记录插入我的表中。在这当我调用这个存储过程。想用我传递的那个 xml 字符串检查 SQL Server 表,如果记录存在我不想插入,如果它是新记录,则必须单独插入记录。给出一些解决方案。谢谢。
ALTER procedure [dbo].[SP_CMSUSER1]
(@xmlString ntext)
as
begin
DECLARE @idoc INT
DECLARE @data nvarchar(100)
EXEC sp_xml_preparedocument @idoc OUTPUT, @xmlString
INSERT INTO dbo.Seg_RecipientsTemp (ContactID,first_name,last_name,company,email,last_updated)
SELECT ContactID,
first_name,
last_name,
company,
email,
last_updated FROM OPENXML(@idoc,
'/NewDataSet/ContactData', 6)
WITH
(ContactID int ,
first_name nvarchar(50),
last_name nvarchar(50),
company nvarchar(max),
email nvarchar(100),
last_updated datetime
)
end
我的 XML 是:
<NewDataSet>
<Table>
<ContactID>2</ContactID>
<last_name>klklk</last_name>
</Table>
<Table>
<ContactID>4</ContactID>
<first_name>k</first_name>
<last_name>kk</last_name>
<company>k</company>
</Table>
<Table>
<ContactID>6</ContactID>
<first_name>naveen</first_name>
<last_name />
<company>inno</company>
</Table>
<Table>
<ContactID>7</ContactID>
<first_name>sridar</first_name>
<last_name />
<company>mahindara</company>
</Table>
<Table>
<ContactID>1</ContactID>
<first_name>terst</first_name>
</Table>
<Table>
<ContactID>2</ContactID>
<first_name />
<last_name>ask</last_name>
<company />
</Table>
</NewDataSet>