【发布时间】:2012-02-01 18:16:07
【问题描述】:
我有如下的存储过程。
CREATE procedure [dbo].[Poll_EDI834_5010]
AS
BEGIN
select
Header.ST01,
Header.ST02,
Header.ST03 ,
Header.SE02,
Line.INS01__InsuredIndicator ,
Line.PER04__CommunicationNumber ,
Line.PER05_CommunicationNumberQualifier ,
Line.DMG06_CitizenshipStatusCode ,
(select Member_Ref.REF01_ReferenceIdentificationQualifier ,Member_Ref.REF02_MemberSupplementalIdentifier
from EDI834_5010_2000_RefLoop Member_Ref
where Member_Ref.Id_Header = Header.BGN02__TransactionSetIdentifierCode
and Member_Ref.Id_Loop2000 = Line.Member_Id
for xml auto, elements, type) ,
(select Member_DTP.DTP01_DateTimeQualifier , Member_DTP.DTP02_DateTimePeriodFormatQualifier , Member_DTP.DTP03_StatusInformationEffectiveDate
from EDI834_5010_2000DTP Member_DTP
where Member_DTP.Header_Id = Header.BGN02__TransactionSetIdentifierCode
and Member_DTP.Member_Id = Line.Member_Id
for xml auto, elements, type) ,
VLine.HD01_MaintenanceTypeCode,
VLine.HD03_InsuranceLineCode ,
VLine.N402_ProviderStateCode ,
VLine.N403_ProviderPostalZoneorZIPCode ,
(select ClaimDTP.DTP01__DateTimeQualifier , ClaimDTP.DTP02__DateTimePeriodFormatQualifier , ClaimDTP.DTP03__StatusInformationEffectiveDate
from EDI834_5010_2300_DTPLoop ClaimDTP
where ClaimDTP.Id_Header = Header.BGN02__TransactionSetIdentifierCode
and ClaimDTP.Id_Loop2000 = Line.Member_Id
and ClaimDTP.Id_Loop2300 = VLine.Id_Claim
for xml auto, elements, type)
from EDI834_5010_Header Header
join EDI834_5010_2000 Line on Header.BGN02__TransactionSetIdentifierCode = Line.Header_Id
join EDI834_5010_2300Loop VLine on Header.BGN02__TransactionSetIdentifierCode = VLine.Id_Header_Id andVLine.Id_Loop2000=Line.Member_Id
for xml auto,ELEMENTS
END
GO
它可以获取大约 100,000 条记录。我需要分块获取数据。就像先是 10000,然后是 10000……我需要在存储过程中进行哪些更改才能以块的形式获取数据。
【问题讨论】:
-
这是 MySql 还是 SQL Server?该 FOR 语句不是有效的 TSQL。
标签: mysql sql sql-server tsql stored-procedures