Vous pouvez améliorer cette fonction en ajoutant du code de traitement pour d'autres types de navigateurs, ou même pour des robots comme GoogleBot, etc. Fonction T-SQL : Comment analyser UserAgent pour extraire le nom du navigateur ?
Dans certains cas, comme Internet Explorer, c'est assez simple - il suffit de rechercher l'existence d'une expression régulière MSIE 6.0 ou MSIE 8.0. Mais avec d'autres navigateurs, ce n'est pas simple ... Donc, pour chaque navigateur, vous devez utiliser une technique d'extraction différente pour extraire le nom et la version du Nom et version.
La fonction TSQL ressemblerait à ceci :
CREATE FUNCTION [dbo].[GetBrowserName](@UserAgent VARCHAR(200))
RETURNS VARCHAR(30)
AS
BEGIN
DECLARE @BrowserName VARCHAR(30)
SET @BrowserName = CASE
WHEN PATINDEX('%MSIE 8.0%',@UserAgent) > 0
THEN 'Internet Explorer 8.0'
WHEN PATINDEX('%MSIE 7.0%',@UserAgent) > 0
THEN 'Internet Explorer 7.0'
WHEN PATINDEX('%MSIE 6.0%',@UserAgent) > 0
THEN 'Internet Explorer 6.0'
WHEN PATINDEX('%MSIE 5.0%',@UserAgent) > 0
THEN 'Internet Explorer 5.0'
WHEN PATINDEX('%Firefox%',@UserAgent) > 0
THEN 'Mozilla ' + REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Firefox%',@UserAgent), 100),'/', ' ')
WHEN PATINDEX('%Chrome%',@UserAgent) > 0
THEN 'Google ' + REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Chrome%',@UserAgent),
PATINDEX('%Safari%',@UserAgent) -
PATINDEX('%Chrome%',@UserAgent)),'/', ' ')
WHEN PATINDEX('%Safari%',@UserAgent) > 0
THEN 'Safari ' + REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Version%',@UserAgent),
PATINDEX('%Safari%',@UserAgent)-
PATINDEX('%Version%',@UserAgent)),'Version/', '')
WHEN PATINDEX('%Opera%',@UserAgent) > 0
THEN REPLACE(SUBSTRING(@UserAgent,
PATINDEX('%Opera%',@UserAgent),
PATINDEX('%(%',@UserAgent)-2),'/', ' ')
ELSE
'Unknown Browser'
END
RETURN(@BrowserName)
END