Я прошел этот урок
http://www.codeproject.com/KB/linq/BulkOperations_LinqToSQL.aspx
и они делают SP таким, как этот
CREATE PROCEDURE [dbo].[spTEST_InsertXMLTEST_TEST](@UpdatedProdData nText)
AS
DECLARE @hDoc int
exec sp_xml_preparedocument @hDoc OUTPUT,@UpdatedProdData
INSERT INTO TBL_TEST_TEST(NAME)
SELECT XMLProdTable.NAME
FROM OPENXML(@hDoc, 'ArrayOfTBL_TEST_TEST/TBL_TEST_TEST', 2)
WITH (
ID Int,
NAME varchar(100)
) XMLProdTable
EXEC sp_xml_removedocument @hDoc
Теперь мои требования требуют от меня массовой вставки и массового обновления один за другим. Итак, сначала мне интересно, можно ли объединить их в один SP? Я не уверен, как он работает с этим OPENXML, но я думаю, что он просто убедился бы в правильности XPath.
Далее, что произойдет, когда будет запущен этот комбинированный SP, и что-то пойдет не так. Будет ли он откатывать все записи или просто остановится, и записи, которые произошли до того, как произошел сбой, будут вставлены?