Advertisement
bluebunny72

ILC_SignOutSp

Nov 27th, 2016 (edited)
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.47 KB | None | 0 0
  1. IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ILC_SignOutSp]') AND TYPE IN (N'P', N'PC'))
  2. BEGIN
  3.  
  4. DROP PROCEDURE [dbo].[ILC_SignOutSp]
  5.  
  6. END
  7. GO
  8.  
  9. SET ANSI_NULLS ON
  10. GO
  11.  
  12. SET QUOTED_IDENTIFIER ON
  13. GO
  14.  
  15. -- =============================================
  16. -- 02-SEP-2020  sign users out if they have been logged in for more than 12 hours/run hourly
  17. -- =============================================
  18. CREATE PROCEDURE [dbo].[ILC_SignOutSp] (
  19.     @HOUR ILC_IntegerType = 12
  20. )
  21. AS
  22. BEGIN
  23.     -- SET NOCOUNT ON added to prevent extra result sets from
  24.     -- interfering with SELECT statements.
  25.     SET NOCOUNT ON;
  26.  
  27.     DECLARE @T TABLE (ConnectionID UNIQUEIDENTIFIER)
  28.  
  29.     INSERT @T(ConnectionID)
  30.     SELECT ci.ConnectionID
  31.     FROM dbo.connectioninformation ci
  32.     WHERE (
  33.     ci.SessionType = 1
  34.     AND DATEADD(HOUR,DATEDIFF(HOUR,dbo.GetSiteNow(), GETDATE()), ci.CreateDate)<DATEADD(HOUR,-1*@HOUR,GETDATE())
  35.     )
  36.     OR (
  37.     ci.SessionType = 0
  38.     AND ci.CreationContext IS NULL
  39.     AND ci.UserName NOT LIKE '$%' --$MGEvent
  40.     AND DATEADD(HOUR,DATEDIFF(HOUR,dbo.GetSiteNow(), GETDATE()), ci.CreateDate)<DATEADD(HOUR,-2,GETDATE())
  41.     )
  42.  
  43.     DECLARE @SessionID UNIQUEIDENTIFIER
  44.     SELECT TOP 1 @SessionID = ConnectionID
  45.     FROM @T
  46.     ORDER BY ConnectionID
  47.  
  48.     WHILE @SessionID IS NOT NULL
  49.     BEGIN
  50.         EXEC closesessionsp @SessionID
  51.  
  52.         DELETE @T
  53.         WHERE ConnectionID=@SessionID
  54.  
  55.         SET @SessionID = NULL
  56.  
  57.         SELECT TOP 1 @SessionID = ConnectionID
  58.         FROM @T
  59.         ORDER BY ConnectionID
  60.     END
  61. END
  62.  
  63. GO
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement