В проекте, использующем базу данных MSSQL 2005, мы должны регистрировать все действия по обработке данных в таблице журналирования. Предполагается, что одно поле в этой таблице будет содержать строку до ее изменения. У нас много таблиц, поэтому я пытался написать хранимую процедуру, которая бы собирала все поля в одной строке таблицы, которая была ему передана, каким-то образом объединяла их, а затем записывала новую запись журнала с этой информацией. *
Я уже пытался использовать FOR XML PATH, и это сработало, но клиенту не нравятся нотации XML, ему нужно поле csv.
Вот что у меня было с FOR XML PATH:
DECLARE @foo varchar(max);
SET @foo = (SELECT * FROM table WHERE id = 5775 FOR XML PATH(''));
Значения "table", "id" и фактического идентификатора (здесь: 5775) будут позже переданы через вызов хранимой процедуры.
Есть ли способ сделать это, не получая нотацию XML и не зная заранее, какие поля будут возвращены оператором SELECT?