私の知る限り、可変列セットをサポートする SQL Server インポート方法 (一括挿入、BCP、SSIS など) は提供されていません。絶対的に定義されたすべての列は、すべてのインポート行にある必要があります。
このため、この (非常に一般的な) 状況を処理するための推奨される方法は、次のいずれかです。
1)汎用言語 (VB、C# など) で記述された特殊なインポート プログラムを使用 (または記述) して、テキスト ファイルを解析し、SQL Server のテーブルに挿入します。または、
2) SQL Server が提供するインポート メソッド (一括挿入、BCP、SSIS など) のいずれかを使用して、各行を単一のテキスト列 (NVarchar(MAX) として) としてステージング テーブルにインポートし、SQL を使用してこれらのテキスト行を解析します。実際の列に。(これは私の好みの方法です)
上記 (2) の典型的なステージング テーブルは次のようになります。
CREATE TABLE Import_Staging
(
RowNumber INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
RowText NVARCHAR(MAX)
);
このルートを使用する場合、IDENTITY 列を非表示にすると、インポート ツールは通常より快適になります。これは、ファサード ビューを作成し、テーブルではなくビューにインポートを指示することで簡単に実行できます。そのようです:
CREATE VIEW vImport_Staging AS SELECT RowText FROM Import_Staging;