0
我有作为输入传递给批量插入的存储过程的xml。我的XML如下,如果数据不存在,则使用带有xml的存储过程作为输入插入
NewDataSet>
- <Table1>
<StationId>1</StationId>
<DateOfEvent>2013-11-15</DateOfEvent>
<Year>2013</Year>
<WeekOfYear>46</WeekOfYear>
<MonthOfYear>11</MonthOfYear>
<ItemType>CATEGORY</ItemType>
<ItemName>10234</ItemName>
<Clicks>1</Clicks>
<SiteName>sandvikas</SiteName>
</Table1>
我已经写了如下的存储过程,
ALTER PROCEDURE [dbo].[InsertQuestion]
(
@XmlQuestionMeasurements xml
)
AS
BEGIN
DECLARE @docHandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @XmlQuestionMeasurements
--insert data in to EP_QuestionMeasurement table
Insert into Analytics(StationId,DateOfEvent,Year,WeekOfYear,MonthOfYear,ItemType,ItemName,Clicks,SiteName)
SELECT StationId,DateOfEvent,Year,WeekOfYear,MonthOfYear,ItemType,ItemName,Clicks,SiteName
FROM Openxml(@docHandle, '/NewDataSet/Table1', 2)
WITH (StationId int,DateOfEvent date, Year int ,WeekOfYear int,MonthOfYear int, ItemType VARCHAR(50),ItemName VARCHAR(50),Clicks int,SiteName VARCHAR(50) )
END
其插入很好。现在我的问题是我如何修改存储过程,以防止再次传递相同的XML集插入,以检查是否存在相同的数据,然后阻止插入。 需要检查条件,如果此项目名称在此日期存在,则不插入。
问候
Itemname是唯一的基于站ID's.I我有相同的itemname目前在不同的站,如站ID为1有物品名301和STAN2也有301.如果这两个站在同一时间点击服务器。 – Sangeetha