Questo dovrebbe funzionare sia per le combinazioni "Nome Cognome" che "Nome Secondo Nome Cognome".
DECLARE @name AS NVARCHAR(50)
SET @name = 'Firstname Middle Lastname'
SELECT SUBSTRING(@name, 1, 1) + --First initial
SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) + --Middle/Last initial
CASE WHEN 0 <> CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words
THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1) --Last initial
ELSE '' --Have to add empty string to avoid NULLing entire result
END
Naturalmente, se gli utenti hanno uno spazio in uno dei loro nomi per qualche motivo avrai un problema nell'analisi, ma sospetto che sarebbe comunque il caso quando non memorizzerai i tuoi nomi in campi separati.