【发布时间】:2013-06-11 12:00:48
【问题描述】:
webguys 想要基于产品名称的唯一 url 如果更多产品具有相同的名称,请在名称后添加一个数字。
our.dom/red-sock
our.dom/red-sock-1
他们确实不想要所有产品上的产品 ID 或其他数字,即
our.dom/red-sock-123481354
我将它存储在我称为 seourl 的字段中。
我在创建新产品时已经涵盖了它,触发器尝试添加 seourl,如果它已经存在,则增加数字,直到找到唯一值。
但是我现在必须给整张桌子新的感觉。 如果我只是
update tab set seourl=dbo.createurl(title)
肯定有碰撞,操作回滚。 有没有办法让语句提交有效的更新,而其余的保持不变?
或者我必须只做一个 RBAR,Row By Agonizing Row 循环操作吗?
【问题讨论】:
-
您确实应该将数字存储在单独的字段中。现在您必须使用 PADINDEX 等来拆分数字和文本。
-
不会。在这种情况下,我将不得不执行“其中 name+'-'+serial = @url 我永远不想拆分。创建新的 seourl 时,我尝试输入它。如果它已经存在,我尝试 name-1, name- 2,name-3 循环,直到找到一个未使用的。
标签: sql-server-2008 rbar