56 lines
1.2 KiB
Transact-SQL
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
|