I don't know anything about using various collations and UNICODE character sets etc., but here's a test rig for anyone to try:DECLARE @temp TABLE( MyID int IDENTITY(1,1) NOT NULL, MyNText nvarchar(10) COLLATE Latin1_General_CS_AS)INSERT INTO @temp(MyNText)SELECT N'Café' UNION ALL -- Caps + AccentSELECT N'café' UNION ALL -- AccentSELECT N'Cafe' UNION ALL -- CapsSELECT N'cafe' -- All lower case, no accentsSELECT MyNText, [Bin] = CASE WHEN MyNText LIKE '%[^-~*a-z0-9]%' COLLATE Latin1_General_BIN THEN 'X' ELSE '' END, [CS_AS] = CASE WHEN MyNText LIKE '%[^-~*a-z0-9]%' COLLATE Latin1_General_CS_AS THEN 'X' ELSE '' END, [SQL CS_AS] = CASE WHEN MyNText LIKE '%[^-~*a-z0-9]%' COLLATE SQL_Latin1_General_CP1_CS_AS THEN 'X' ELSE '' ENDFROM @tempORDER BY MyID
Note that BINARY collation, as I suggested earlier, does work but I suspect that will have other issues (e.g. with non-Roman character sets