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
 |