Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. CREATE FUNCTION fn_SIDToString
  2. (
  3. @BinSID AS VARBINARY(100)
  4. )
  5. RETURNS VARCHAR(100)
  6. AS BEGIN
  7.  
  8. IF LEN(@BinSID) % 4 <> 0 RETURN(NULL)
  9.  
  10. DECLARE @StringSID VARCHAR(100)
  11. DECLARE @i AS INT
  12. DECLARE @j AS INT
  13.  
  14. SELECT @StringSID = 'S-'
  15. + CONVERT(VARCHAR, CONVERT(INT, CONVERT(VARBINARY, SUBSTRING(@BinSID, 1, 1))))
  16. SELECT @StringSID = @StringSID + '-'
  17. + CONVERT(VARCHAR, CONVERT(INT, CONVERT(VARBINARY, SUBSTRING(@BinSID, 3, 6))))
  18.  
  19. SET @j = 9
  20. SET @i = LEN(@BinSID)
  21.  
  22. WHILE @j < @i
  23. BEGIN
  24. DECLARE @val BINARY(4)
  25. SELECT @val = SUBSTRING(@BinSID, @j, 4)
  26. SELECT @StringSID = @StringSID + '-'
  27. + CONVERT(VARCHAR, CONVERT(BIGINT, CONVERT(VARBINARY, REVERSE(CONVERT(VARBINARY, @val)))))
  28. SET @j = @j + 4
  29. END
  30. RETURN ( @StringSID )
  31. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement