为列中的每一行生成guid

5 sql t-sql sql-server

我有一个存储过程,其中包含一个包含一列的表,我需要为该列中的每一行生成一个NEWID().我只能用循环来完成这个吗?

+---+    +--------------------------------------+---+
| a |    | FD16A8B5-DBE6-46AB-A59A-6B6674E9A78D | a |
| b | => | 9E4A6EE6-1C95-4C7F-A666-F88B32D24B59 | b |
| c |    | 468C0B23-5A7E-404E-A9CB-F624BDA476DA | c |
+---+    +--------------------------------------+---+
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 8

您应该能够从表中进行选择并包含newid()以生成每行的值:

select newid(), col
from yourtable;
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo


小智 5

您可以使用新的guid创建一列

alter table yourtable add id varchar(40) not null default NEWID() 
Run Code Online (Sandbox Code Playgroud)

http://sqlfiddle.com/#!3/b3c31/1