【发布时间】:2013-06-25 20:21:31
【问题描述】:
我有两个表结构如下
表格 - 备忘录类型
ID | MemoTypeID | MemoTypeName
1 1234 A
2 5678 B
表格 - 备忘录
ID | MemoTypeID | Memo | ExtRef
1 1234 TextOne XYZ
2 5678 TextTwo XYZ
3 1234 TextThree TUV
我们希望更新这些表格以反映以下数据
表格 - 备忘录类型
ID | MemoTypeID | MemoTypeName
3 9999 NewCombinedMemo
表格 - 备忘录
ID | MemoTypeID | Memo | ExtRef
4 9999 <A> TextOne <B> TextTwo XYZ
5 9999 <A> TextThree TUV
memos 表有大约 200 万行,有大约 200,000 个 ExtRef 的唯一值。
我的想法如下(使用 .NET):从 Memos 表中填充所有唯一 ExtRef 值的 List;对于每个唯一的ExtRef,获取所有Memo 值的列表;根据需要连接字符串;为每个ExtRef 插入新记录;删除每个ExtRef 的其余记录。问题是这样会导致大量的sql操作。
请建议是否有其他有效的策略可以直接在 SQL 中实现。
【问题讨论】:
-
与其获取一些独特的
ExtRef然后查找字符串,不如执行GroupBy(x=>x.ExtRef)。
标签: sql sql-server sql-server-2008