我正在使用 SQL Server 2008 和 ASP.NET 4.0 运行一个网站。我试图追踪一个问题,即我的存储过程正在为同一日期创建重复条目。最初我认为这可能是几个帖子问题,但重复记录的日期相同,精确到毫秒。其中一个重复项位于:'2013-04-26 15:48:28.323' 除 id 外,所有数据都完全相同。
@check_date
是存储过程的输入,它为我们提供了我们正在查看的特定日期(条目是每天的女仆)
@formHeaderId
在存储过程的前面被抓取,获取标题 ID,因为这是一个与标题有一对多关系的详细信息表。
该@getdate()
条目是我找到重复条目的地方,有getdate()
不同行的确切值的条目。
这也不会发生在每个条目中,它是在应用程序中随机发生的。
select @formHeaderId=stage2_checklist_header_id
from stage2_checklist_header
where environmental_forms_id=@envFormId
and checklist_monthyear=@inspected_month
order by start_date desc
if @formHeaderId = 0 begin
insert into stage2_checklist_header(
environmental_forms_id
,start_date
,checklist_monthyear
,st2h_load_date )
values( @envFormId
,@check_date
,@inspected_month
,getdate())
set @formHeaderId = scope_identity()
print 'inserted new header record ' + cast(@formHeaderId as varchar(50))
end
IF (NOT EXISTS(
SELECT *
FROM stage2_checklist_detail
WHERE stage2_checklist_header_id = @formHeaderId
AND check_date = @check_date
))
INSERT INTO stage2_checklist_detail
(stage2_checklist_header_id, check_date, st2_chk_det_load_date,
inspected_by)
VALUES
(@formHeaderId, @check_date, GETDATE(), @inspected_by)
SET @form_detail_id = SCOPE_IDENTITY()
PRINT 'inserted detail record ' + CAST(@form_detail_id AS VARCHAR(50))