私はこの次のシナリオを手に入れました、
COUNTRY、STATE、CITY、STREETの4つのテーブルがあり、
上記のレコードを含むExcelファイルがあります。現時点ではおそらく2000行です。
SqlBulkCopyを使用してデータを一時テーブルにインポートし、テーブルにIMPORTという名前を付けます。
そして、挿入されたレコードを取得し、国、州、都市、通りを分割して、それぞれのテーブルに挿入するIMPORTテーブルに挿入のトリガーを1つ作成しました。
このトリガーでは、いくつかの条件付きチェックを実行する必要があります。たとえば、COUNTRY名がすでに存在する場合は、COUNTRY_IDを返します。それ以外の場合は、それを挿入して新しいCOUNTRY_IDを取得します。
上記は、Excelファイルに1行しかない場合に機能します。インポート用に元のExcelを配置すると、sqlbulkcopyによってINSERTEDが複数のレコードを持つようになるため
、トリガーの次のステートメントが「INSERTEDから国を選択」に失敗することがわかりました。
テーブル構造
国
- Country_ID
- 国名
州
- State_ID
- Country_ID
- State_Name
街
- City_ID
- State_ID
- Country_ID
- 市の名前
街
- Street_ID
- City_ID
- State_ID
- Country_ID
- 道の名前
輸入
- 国名
- State_Name
- 市の名前
- 道の名前
それで、INSERTEDのすべてのレコードをループするループステートメントをトリガーに含めることはできますか?
または、これに最善の方法で対処する方法は?
注:彼らはすでにそれを使用しているので、私はそれらのテーブル構造とそれらの関係を制御できません。
前もって感謝します。