У меня есть StoredProcedure, который принимаетперебор данных XML в SQL Server 2005
@MissingRecordsXML NTEXT
Он содержит XML-запись. Теперь другой разработчик использовал курсор для извлечения строк из OPENXML, а затем применил все бизнес-правила для каждой строки и после этого каждую строку вставлял в таблицу.
Я хочу знать, что является лучшим способом для XML-данных foreach в SQL Server. Мне нужно повысить производительность этого SP, поскольку он очень медленный, когда есть несколько записей. Курсоры уже объявлены как только для чтения. помочь
код, который заполняет курсор из XML является: -
exec sp_xml_preparedocument @hDocSEC OUTPUT,@MissingRecordsXML
DECLARE SEC_UPDATE CURSOR FOR
SELECT MissingColumn,TableName,PhysicalColName,Grantor_Grantee
FROM OPENXML (@hDocSEC,'MissingDS/MissingTable',2)
WITH (MissingColumn VARCHAR(1000),TableName VARCHAR(100),
PhysicalColName VARCHAR(100),Grantor_Grantee VARCHAR(100))
OPEN SEC_UPDATE
FETCH NEXT FROM SEC_UPDATE
INTO @MissingColumn,@TableName,@ActualColumnName,@Grantor_Grantee
Я считаю, XQuery быть боль, но как только вы получите это работает, это работает очень хорошо. –
@Both: ... и no "sp_xml_preparedocument" тоже – gbn
Marc-It очень помог. Могу выбрать одну строку за раз и выполнить некоторую обработку, а затем вставить ее в какую-нибудь другую таблицу, используя вышеуказанный подход. – Rohit