首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TSQL中唯一id的生成及惟一id的转换

TSQL中唯一id的生成及惟一id的转换
EN

Stack Overflow用户
提问于 2011-10-19 19:16:04
回答 1查看 1.4K关注 0票数 2

我试图通过创建两个新的列值来更新SQL表:一个惟一Id,然后是刚刚创建的唯一id的缩短整数版本。

使用我找到的这里 (请参阅底部的“NEWID()方式”)的一个技巧,我认为这是可行的:

代码语言:javascript
复制
Update Customer Set [UniqueId] = NEWID(), [UniqueIntegerId] = ABS(CAST(CAST([UniqueId] AS VARBINARY) AS INT))

但这会产生类似于

UniqueId

3C79.5A4DEB2 754988032

1FD6.828B943 754988032

1F48...E80F511 754988032 <--重复!不想要!

什么语法是正确的,试图做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-19 20:25:40

这不能像预期的那样工作,因为表达式中的[UniqueId]是在更新之前计算为值的。相反,你可以尝试这样做:

代码语言:javascript
复制
DECLARE @uid uniqueidentifier;
UPDATE Customer
SET
  @uid = [UniqueId] = NEWID(),
  [UniqueIntegerId] = ABS(CAST(CAST(@uid AS VARBINARY) AS INT))

@uid变量被赋予与[UniqueId]相同的值,然后在另一列的表达式中使用而不是[UniqueId]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7826831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档