我想使用ProductId
和SKUCode
更新Id
。
在此我在Id
中添加1000000,在skucode
中只添加两位数字:
SELECT
ProductId,
LEFT(SKUCode,2) AS SKU,
10000000 + (ROW_NUMBER() OVER(ORDER BY Id)) AS Number
FROM
ProductMaster
我得到的结果是如何使用SQL Server 2008 R2中的回滚进行更新
我希望ProductId
更新为SKU + Number
,其中sku
为Nvarchar
而Number
为Int
。
结果
答案 0 :(得分:1)
我不建议在产品ID中编码SKU代码。如果产品被错误分类,那么您必须更改数据库中的大量内容。这就是代理键是个好主意的原因。您可以自由地制作和修复任何真实数据字段中的错误。
如果我理解正确,您可以使用CTE
并更新:
with toupdate as (
select ProductId, LEFT(SKUCode, 2) AS SKU,
10000000 + (ROW_NUMBER() OVER(ORDER BY Id)) AS Number
from ProductMaster
)
update toupdate
set ProductId = SKU + cast(Number as varchar(255));
答案 1 :(得分:0)
您可以将Number
转换为NVARCHAR()
,然后在以下内容中连接:
CAST(NUMBER as NVARCHAR(40))