私はSQL Serverを初めて使用しています。SQL Serverストアドプロシージャの結果から指定した列とその値を選択してJSONに変換する方法はありますか?
要件::私は
選択した列のヘッダーとその値がシリアル化されている指定された列ヘッダとSQL Serverのストアドプロシージャの結果からその値を選択する必要が
ここに私の要件は、 SQL Server 2012のJSON文字列オブジェクトへの変換
私がしたこと:
SQL Server Management Studio 2012でテーブルのデータ変更を監視する必要があります。古いテーブルデータで挿入、削除、更新が発生した場合、SQL ServerからSQL Serverにインスタントメッセージを送信する必要があります。 WCFサービス。
インスタントメッセージを送信するには、まずストアドプロシージャの結果セットから指定した列を選択し、JSON文字列としてシリアル化する必要があります。
私は、データベース内の変更データキャプチャ機能とそのテーブルを追跡して、テーブルデータの変更を追跡しています。
上記の場合、私はChange Data Capture機能を有効にしたデータベースとテーブルを作成しました。次に、テーブルのデータに値を挿入しました。
最後に、ストアドプロシージャを使用して、結果としてテーブルデータの変更を表示します。
マイデモクエリ:以上の結果から
DECLARE @from_lsn binary(10), @to_lsn binary(10)
SET @from_lsn = sys.fn_cdc_get_min_lsn('dbo_one')
SET @to_lsn = sys.fn_cdc_get_max_lsn()
SELECT
CT.__$start_lsn, CT.__$operation,
CASE CT.__$operation
WHEN 1 THEN 'Delete'
WHEN 2 THEN 'Insert'
WHEN 3 THEN 'Update - Pre'
WHEN 4 THEN 'Update - Post'
END AS Operation,
CT.*,
LSN.tran_begin_time, LSN.tran_end_time, LSN.tran_id
FROM
cdc.fn_cdc_get_all_changes_dbo_one (@from_lsn, @to_lsn, N'all update old') AS CT
INNER JOIN
cdc.lsn_time_mapping AS LSN ON CT.__$start_lsn = LSN.start_lsn
は、私は、操作の種類を選択する必要があり、列ヘッダーとその値を変更しました。
選択したら、それらをすべてJSON文字列としてシリアル化し、SQL Server 2012のJSONオブジェクトをPOSTメソッド経由でWCFサービスに渡す必要があります。
どうすればこの問題を解決できますか?誰も私がこれを解決するのを助けることができますか?