gpt4 book ai didi

sql-server-2008 - 基于字段创建可读的、唯一的键

转载 作者:行者123 更新时间:2023-12-04 06:53:38 26 4
gpt4 key购买 nike

webguys 想要基于产品名称的唯一 url如果多个产品具有相同的名称,请在名称后添加一个数字。

our.dom/red-sock

our.dom/red-sock-1

他们想要所有产品上的产品 ID 或其他数字,即

our.dom/red-sock-123481354

我将其存储在一个名为 seourl 的字段中。

当我创建新产品时,我已经涵盖了它,触发器尝试添加 seourl,如果它已经存在,则增加数字,直到找到唯一值。

但我现在必须给整个表新的 seourls。如果我只是

update tab set seourl=dbo.createurl(title)

肯定有碰撞,操作回滚。有没有办法让语句提交有效的更新,并保持其余不变?

或者我必须只做一个 RBAR,在一个循环中通过 Agonizing Row 操作进行 Row?

最佳答案

根据您的需要进行调整:

select
*
from (values('aaa'), ('aaa-12'), ('aaa-'), ('bbb-3')) as src (x)
cross apply (
select isnull(nullif(patindex('%-[0-9]%', x) - 1, -1), LEN(x))
) as p(idx)
cross apply (
select
SUBSTRING(x, 1, idx)
, SUBSTRING(x, idx + 1, LEN(x) - idx)
) as t(t, xx)

关于sql-server-2008 - 基于字段创建可读的、唯一的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17043588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com