特定のwhere句を持つすべての値をテーブルAからテーブルBにコピー/挿入する必要があります(基本テーブルから各履歴テーブル)。結果を使用してクエリを選択してください(Info_schemaから選択した列)
摂取が必要なすべてのテーブルで使用できる汎用アプローチを作成したいので、列名を指定したくありません。
残念ながら、テーブルAの属性は、必ずしもテーブルBと同じ順序であるとは限らないため、TableAからselect * into #tempを使用して#tempからtableBに挿入することはできません。 Plus TableBには、監査用に生成された3つのsysカラムがあります。
私の考えは、Infoスキーマを使用して列名を取得することでした。次に、どういうわけか結果を使用して、問い合わせテーブルからすべての値を取得し、汎用のsysカラムを先頭に追加します。それは可能ですか?
Infoスキーマを使用して列名を取得しました。
Select
COLUMN_NAME
FROM INFORMATION_SCHEMA.columns
where TABLE_NAME = 'TableA'
SYS列は次のとおりです。
sys_date=Getdate()
,sys_flag='1'
,sys_name=SYSTEM_USER
2つのテーブルには、同じ名前、データ型、および値を持つ列が常にありますか?序数の位置が必要ですか?すべての追加列はすべてのテーブルで同じですか? –
はじめに... mysqlまたはsqlサーバー?彼らは同じことではありません。どのDBMSを使用しているかを決めると、この質問を明確にする必要があります。あなたがしようとしていることは私には分かりません。 –
@RohitKumar、はい、2つのテーブルに同じデータ型があります。 2つの唯一の違いは、2つ目に制約がなく、いくつかの追加の列があることです。 @SeanLange。 –