the problem with your code is, that the result
of @sqlstring would be "select uid"
which is not a valid sql statement, you would need
eg select 'uid'
Maybe you try the follwing:
declare @sqlstring varchar(255)
,@sqlstmt varchar (500)
select top 1 @sqlstring = name
from syscolumns c
SET @sqlstmt = 'select '''+@sqlstring +'''' -- as it is a varchar you have to double qute it
print @sqlstmt
EXEC(@sqlstmt)
-- even this will work:
EXEC('select '''+@sqlstring +'''')