我有一张包含100条没有PK记录的表。
我需要为它添加随机GUID。之前:
First Name Last Name GUID
John Smith
Alex Smith
etc
后:
First Name Last Name GUID
John Smith 34234234gyerfw
Alex Smith werwer32r23r
etc
目前我可以通过以下方式实现:
使用值创建标识列,然后进行while循环并生成newid()。 关于如何在没有循环的情况下执行此操作的任何选项?
答案 0 :(得分:9)
只需添加空列,然后执行UPDATE
。
ALTER TABLE YourTable
ADD GUID UNIQUEIDENTIFIER
UPDATE YourTable
SET GUID = NEWID()
答案 1 :(得分:8)
将GUID列添加为NOT NULL
,默认值为NEWID()
ALTER TABLE
[dbo].[Text]
ADD [GUID] uniqueidentifier NOT NULL DEFAULT NEWID()
这将自动填充现有行,插入记录时无需指定guid。
答案 2 :(得分:0)
您可以添加列并更新值或创建具有NEWID()
的默认约束的持久列
create table test (id int identity
, column1 uniqueidentifier not null default newid()
, column2 varchar(10))
insert into test(column2)
values ('a')
select * from test
alter table test
add column3 uniqueidentifier
update test
set column3 = NEWID()