56 lines
1.2 KiB
Transact-SQL

/****** Object: StoredProcedure [addSession] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [addSession];
GO
CREATE PROCEDURE [dbo].[addSession]
(
@UserID nvarchar(100),
@DTSDtart datetime,
@DTSEnd datetime=null,
@DTSActivity datetime,
@MachineName nvarchar(100),
@ProcessID int,
@newSessionID int output,
@newLastChanged timestamp output
)
WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
INSERT INTO [Sessions]
(
[UserID],
[DTSDtart],
[DTSEnd],
[DTSActivity],
[MachineName],
[ProcessID]
)
VALUES
(
@UserID,
@DTSDtart,
@DTSEnd,
@DTSActivity,
@MachineName,
@ProcessID
)
SELECT @newSessionID= SCOPE_IDENTITY()
SELECT @newLastChanged=[LastChanged]
FROM [Sessions] WHERE [SessionID]=@newSessionID
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: addSession Succeeded'
ELSE PRINT 'Procedure Creation: addSession Error on Creation'
GO