You can use union
like this:
// drop the temp table if it exists
drop table #temptable
// use select...into to create a temporary table
select * into #temptable from
(
select ClientID, 'Surname' as FieldName, surname as FieldData from YourTable
union all
select ClientID, 'Firstname' as FieldName, firstname as FieldData from YourTable
) s
// display the results...
select * from #temptable
The result will be this:
ClientID FieldName FieldData
----------- --------- --------------------
1 Firstname Andrew
1 Surname Smith