Немного разберись с SQL и транзакциями ... надеясь, что некоторые из вас смогут пролить свет на проблему. (и, может быть, даже исправить мой испорченный html! Поддерживает ли этот сайт форматирование для разных языков? Perl, SQL, Java?) Этот сервер работает на SQL Server 2005 и совсем недавно был обновлен с SQL Server 2000. Я буду следить за этим пост в течение дня. Приветствия
ALTER PROCEDURE [dbo].[sp_AddRequest]
-- Add the parameters for the stored procedure here
@Message TEXT,
@RequestId VARCHAR(20),
@StatusCode CHAR(1),
@StatusText VARCHAR(255),
@AddedDate DATETIME,
@MessageTimestamp DATETIME
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Direction is incoming (i.e. Client -> WEBAPP)
DECLARE @Direction VARCHAR(50)
SET @Direction = 'Client -> WEBAPP'
-- Type is derived from:
-- a) MessageType Element value OR
-- b) Data Element first child OR
-- c) Root Element name
DECLARE @Type VARCHAR(50)
SELECT @Type = dbo.fnGetValue('MessageType', @Message)
IF @Type IS NULL SELECT @Type = dbo.fnGetFirstChild('Data', @Message)
IF @Type IS NULL SELECT @Type = dbo.fnGetFirstChild(NULL, @Message)
-- MessageStatus is retrieved from the lookup table
DECLARE @Status VARCHAR(50)
SELECT @Status = Description FROM MessageStatus WHERE MessageStatusCode = @StatusCode
-- Examine the Message root element
IF dbo.fnGetFirstChild(NULL, @Message) = 'RequestMessage'
BEGIN
-- Insert values into the Transaction table
INSERT INTO tblTransaction (RequestID, Direction, [Type], Status, StatusText, Sent, Received, Body)
VALUES (@RequestId, @Direction, @Type, @Status, @StatusText, @MessageTimestamp, @AddedDate, @Message)
RETURN @@IDENTITY
END
ELSE
BEGIN
-- Transaction is linked using the RequestId
DECLARE @TransactionID INT
SELECT @TransactionID = dbo.fnFindTransaction(@RequestId)
-- Insert values into the RelatedMessage table
INSERT INTO tblRelatedMessage (TransactionID, RequestID, Direction, [Type], Status, StatusText, Sent, Received, Body)
VALUES (@TransactionID, @RequestId, @Direction, @Type, @Status, @StatusText, @MessageTimestamp, @AddedDate, @Message)
RETURN @@IDENTITY
END
END
С уважением,