Azure SQL データベースに挿入または追加しようとしたときに発生するエラーをトラブルシューティングしようとしています。
私が得ているエラー:
エラー: Write Data In-DB (353): "NoTable" で PreSQL を実行中にエラーが発生しました: Microsoft OLE DB Provider for SQL Server: テーブル 'CHART' の ID 列の明示的な値は、列リストが使用されている場合にのみ指定できます。 IDENTITY_INSERT が ON です。\42000 = 8101
挿入を実行するために使用しているツールはAlteryx 10.0です。これは、優れたデータ ブレンディングおよび高度な分析ツールであり、具体的には Write Data In-Database ツールです。
私は土曜日の朝からこれを理解しようとしてきましたが、うまくいきませんでした。今晩、私は OLE 接続文字列を調べて、手掛かりが得られるかどうかを確認することにしました。接続文字列でUse Procedure To Prepareパラメータに遭遇しました。ドキュメントは、このパラメーターが一時ストアド プロシージャの作成方法と解放方法を決定することを示しています。次の 2 つの設定が可能です。
コマンドが準備されると、一時ストアド プロシージャが作成されます。セッションが解放されると、一時ストアド プロシージャはすべて削除されます。
コマンドが準備されると、一時ストアド プロシージャが作成されます。コマンドが準備されていない場合、新しいコマンドが指定された場合、またはコマンドへのすべてのアプリケーション参照が解放された場合、プロシージャは削除されます。
質問 1:一時ストアド プロシージャはグローバル一時テーブルに依存していますか? もしそうなら、Azure SQL データベースはグローバル一時変数をサポートしていないため、これが私のエラーの原因である可能性がありますか?
質問 2:パラメータはUse Procedure To Prepare
オプションですか? これが実際に私が直面している問題である場合、このパラメーターを接続文字列から削除して、グローバル一時テーブルの作成を回避できることを願っています。
編集: ID 列に挿入しようとしていることを示すエラー メッセージにもかかわらず、そうではありません。「テーブルがありません」というエラー メッセージの冒頭は、システムがAzure SQL でサポートされていないグローバル一時テーブルを探しているというヒントだと思います。
ご入力いただきありがとうございます。