【发布时间】:2011-05-13 16:00:28
【问题描述】:
我得到了以下场景,
有四个表 COUNTRY, STATE, CITY, STREET
而且我有上面记录的excel文件..截至目前可能有2000行。
我使用 SqlBulkCopy 将数据导入临时表,我们将表命名为 IMPORT。
我在 IMPORT 表上编写了一个插入触发器,用于获取插入的记录
并拆分国家、州、城市、街道,然后将它们插入到相应的表中。
在这个触发器中,我必须进行一些条件检查,例如,如果 COUNTRY 名称已经存在,则返回 COUNTRY_ID,否则插入它并获取新的 COUNTRY_ID。
如果 Excel 文件只有一行,则上述方法有效。
一旦我将原始 Excel 用于导入,我发现触发器中的以下语句失败 "select country from INSERTED" 因为 sqlbulkcopy 使 INSERTED 具有多个记录。
表结构
国家
- Country_ID
- Country_Name
状态
- State_ID
- Country_ID
- 州名
城市
- City_ID
- State_ID
- Country_ID
- 城市名称
街道
- Street_ID
- 城市 ID
- State_ID
- Country_ID
- 街道名称
导入
- Country_Name
- 州名
- 城市名称
- 街道名称
那么我可以在触发器中使用循环语句来遍历 INSERTED 中的所有记录吗?
或者如何以最好的方式解决这个问题?
注意:由于他们已经在使用它,我无法控制这些表结构及其关系。
提前致谢。
【问题讨论】:
标签: sql-server-2008 triggers sqlbulkcopy