一尘不染

添加一个uniqueidentifier列并添加默认值以生成新的guid

sql

我有以下SQL命令:

ALTER TABLE dbo.UserProfiles
ADD ChatId UniqueIdentifier NOT NULL,
UNIQUE(ChatId),
CONSTRAINT "ChatId_default" SET DEFAULT newid()

我希望能够使该列唯一,并且我希望它能够在每次向表中添加一行时生成一个新的guid。此列不是IDENTITY列,因为我已经有一个。这是分开的东西。我将如何将该列添加到已经有用户的表中。


阅读 133

收藏
2021-05-05

共1个答案

一尘不染

看到这个例子:

create table test (mycol UniqueIdentifier NOT NULL default newid(), name varchar(100))
insert into test (name) values ('Roger Medeiros')
select * from test

要在填充的表格上添加一个非null字段,您需要这样做。

alter table test add mycol2 UniqueIdentifier NOT NULL default newid() with values

CREATE UNIQUE NONCLUSTERED INDEX IX_test ON dbo.test
(
mycol
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,    ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
2021-05-05