为了更清楚,我有一个像这样的表
Batch domain
---------------
14 xyz.com
14 abc.com
15 abc.com
15 xyz.com
我想要第3列,每个域都有唯一的编号,无论它们来自哪个批次都无关紧要。
答案 0 :(得分:0)
通常,您不会通过添加列来执行此操作。您需要的是为具有名为DomainID的标识字段的域添加表。然后批处理域表存储ID而不是域名,它连接到域表以获取名称。
答案 1 :(得分:0)
要回答您的问题,可以使用NEWID()
和NEWSEQUENTIALID()
。
请注意,作为函数,可以通过触发器/存储过程/查询调用Newid,但只能将NEWSEQUENTIALID设置为DEFAULT
类型列的uniqueidentifier
值。
两者都有限制,如果发生停电,可以猜测序列号或导致集群,但如果安全性不是值的关注点,则可以管理。
ALTER TABLE [Schema_Name].[Table_Name]
ADD DomainID uniqueidentifier DEFAULT (NEWSEQUENTIALID() )
虽然已过时,Dave Pinal在两者之间有很好的解释。