0

好的,我有一个数据库表,其中数据被我鄙视的这个可怕的小程序转储,但目前无法更改。它有商家数据、名称、地址和一组用竖线分隔的类别。我需要的是一种干净的方式来将它们分开,所以我为每个商家/类别对设置一行。从那里,我可以轻松地将其放入新的数据结构中。这需要在短时间内是一个可重复的过程。我意识到最佳解决方案是摆脱这种结构,但我绞尽脑汁想弄清楚如何在 sql 中干净地做到这一点。

我已经在数据库中有一个函数,它将分割一个分隔的字符串并返回一个表。

这是在 sql server 2008 中,顺便说一句。

编辑(为清楚起见_基本上,以下可能是商家(附加类别 - 为简单起见,对其他字段进行了编辑。在此处使用逗号作为字段分隔符)。

Jimbo's Bait Shoppe, Bait|Sports Gear|Sandwiches

我需要的是:

Jimbo's Bait Shoppe, Bait
Jimbo's Bait Shoppe, Sports Gear
Jimbo's Bait Shoppe, Sandwiches
4

1 回答 1

0

如果您已经编写了一个拆分字符串并返回表的函数,则可以使用触发器。

在“可怕”程序吐出数据的表上的 INSERT 上创建一个触发器。然后触发器将获取未格式化的数据并填充两个干净的表(我认为在您的情况下,您应该有两个表:一个是商家,另一个是产品,使用 MerchantID 使用一对多关系链接)。

在这种情况下,您可以将带有未格式化数据的表用作“脏”表。您可以在“可怕的”程序导入文件后立即进行清理。

如果您需要有关触发器的帮助,请发表评论

于 2012-12-16T23:20:20.330 回答