問題が発生した後、一時テーブルにバルクロードしようとしています。
一時テーブル作成スクリプト:
CREATE TABLE ##DummyTable_Site ( [DimId] int NOT NULL, [Type] nvarchar(200), [Status] nvarchar(200), [Grp] nvarchar(200), [Cat] nvarchar(200), [Desc] nvarchar(500), [Name] nvarchar(200), [Cd] nvarchar(200) NOT NULL,[CRD] datetime2, [CUId] int, [DSId] int)
connection.newBulkLoad('##DummyTable_Site', { keepNulls: true }, ... );
... Columns and Rows added here
connection.execBulkLoad(bulkLoad);
execBulkLoadを実行した後、以下のエラーが発生します
エラー:
メッセージ:「不明なエラーが発生しました。これは、BulkLoadのスキーマが挿入しようとしているテーブルのスキーマと一致していないことが原因である可能性があります。」
+1、追加の列で既存のテーブルを更新しようとすると、同じエラーが発生します。 それを修正する方法はありますか? ドキュメントに何も見つかりませんでした😔
@codethyme列と行の追加コードを表示できますか? エラーは、追加される列と行が一時テーブルの列の順序と一致しないことを示している可能性があります
@ mikalai-sokarau追加される行と列はテーブルの列と一致していますか? おそらく、コード例は見るのに役立つかもしれません
こんにちは@ mikalai-sokarau、私はドキュメントを簡単に調べたところ、列の追加のスキーマが元のテーブルのスキーマと一致する必要があると実際に言及されていることがわかりました。 それが実際にエラーの原因である可能性がありますか? http://tediousjs.github.io/tedious/bulk-load.html#function_addColumn
こんにちは、みんな、あなたの答えとドキュメントへのリンクをありがとう!
確かに、スキーマが異なることがわかりました😳
面倒なAPIを使用してテーブルスキーマを動的に変更(列をもう1つ追加)することは可能ですか?
または、誰かがこの操作を行うための標準的なアプローチを提案できますか?
次のような通常のSQLコマンドを使用して試すことができます
let sqlCommand = 'ALTER TABLE table_name ADD column_name datatype;'
次に、通常の面倒なAPI connection.execSql(sqlCommand);
を使用します。 それが機能するかどうかを確認しますか?
こんにちは@IanChokS 、どうもありがとうございました、それは役に立ちました!
@codethyme上記の解決策はあなたにも役立ちますか? 今のところこれを閉じます。