元のテーブルからシャドウテーブルの膨大なリストを作成する必要がある監査証跡モジュールに取り組んでいました。別のテーブルからシャドウテーブルを生成できるストアドプロシージャを作成することを考えていました。このテーブルは、任意のテーブル、任意のデータ型の3つのフィールドで構成されるtable_A、または任意のデータ型の10個のフィールドで構成されるtable_Bであり、ストアード・プロシージャーへのパラメーターの受け渡しに基づくことができます。
次のように、syscolumnsおよびsystablesから特定のtable_Aで使用可能なフィールドのリストを取得できることを知っています。
select * from syscolumns where tabid = (select tabid from systables where tabname='table_A')
このステートメントから返されるフィールドのリストがあります。たとえば、field_Aとすると、このfield_Aの名前を変更してpre_field_Aとpost_field_Aの2つの新しいフィールドを作成し、これら2つの新しいフィールドを使用してshadow_table_Aのシャドウテーブルを作成します。この概念を残りのフィールドに適用します。この情報はすでにsyscolumnsにあるので、フィールドのデータ型について心配する必要はありません。シャドウテーブルに複製するだけです。
通常、どのテーブルも複数のフィールドで構成されているため、現在、上記のステートメントから返される値のリストをどのように格納できるかについて悩んでいます。アレイを使用して実行できますか?または、監査証跡の目的でシャドウテーブルを作成するための代替ソリューションはありますか?