我將一個xml字符串傳遞給SQL Server中的存儲過程,以便將10000條記錄插入到我的表中。在這個時候我調用這個存儲過程。想要檢查SQL Server表與我正在傳遞的xml字符串,如果記錄存在,我不想插入,如果它是單獨記錄的新記錄必須插入。給出一些解決方案。謝謝。將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>
這將是有益的**看一個示例XML **,並得到你想要從中提取什麼解釋! – 2013-02-28 06:37:57
我想檢查contactid是否存在於sql表中與xml字符串,如果已經存在我不想插入,新記錄只需要插入,我需要如果不存在(select * from dbo.Seg_RecipientsTemp where Contact_Id =(this in我需要使用xml conatacid進行檢查) – 2013-02-28 06:41:24
您是否想爲'dbo.Seg_RecipientsTemp'中不存在的'ContactID'的記錄插入數據,但存在於XML數據中?是否要更新'dbo.Seg_RecipientsTemp '對於'XML數據中確實存在的'ContactID'? – 2013-02-28 06:47:31