This is a bummed version of many of the "csv creating" scripts I've seen. No need to use a temp table or loop; the string can be built with one select statement (Select @String = isnull(@String + ',','') + Column From Table)
For most DBAs, normalization is an understood concept, a bread and butter bit of knowledge. However, it is not at all unusual to review a database design by a development group for an OLTP (OnLine Transaction Processing) environment and find that the schema chosen is anything but properly normalized. This article by Brian Kelley will give you the core knowledge to data model.