MSSQL 2005データベースを使用するプロジェクトでは、アクションを操作するすべてのデータをロギングテーブルに記録する必要があります。そのテーブルの1つのフィールドには、変更前の行が含まれています。私はテーブルがたくさんあるので、与えられたテーブルのある行のすべてのフィールドを集めて何らかの形で連結し、その情報で新しいログエントリを作成するストアドプロシージャを作成しようとしました。異なるテーブルの行を1つのフィールドに連結する
私は既にFOR XML PATHを使用して試してみましたが、うまくいきましたが、クライアントはXML表記が気に入らず、CSVフィールドが必要です。
は、ここで私はXMLパスにしていたものです:
DECLARE @foo varchar(max);
SET @foo = (SELECT * FROM table WHERE id = 5775 FOR XML PATH(''));
「テーブル」、「ID」の値と(ここでは:5775)は、実際のidは、後で保存への呼び出しを通じて渡されます手順。
XML記法を使用せずに、そしてSELECTステートメントによって返されるフィールドが事前に分からなければ、これを行う方法はありますか?