为没有循环的表生成guid

use*_*076 2 sql sql-server sql-server-2008

我有一张包含100条记录而没有PK的表格.

我需要为它添加随机GUID.之前:

    First Name   Last Name   GUID
      John         Smith
      Alex         Smith
etc
Run Code Online (Sandbox Code Playgroud)

后:

    First Name   Last Name   GUID
      John         Smith    34234234gyerfw
      Alex         Smith    werwer32r23r
etc
Run Code Online (Sandbox Code Playgroud)

目前我可以通过以下方式实现:

使用值创建标识列,然后进行while循环并生成newid().如何在没有循环的情况下执行此操作的任何选项?

Lam*_*mak 9

只需添加空列然后执行UPDATE.

ALTER TABLE YourTable
ADD GUID UNIQUEIDENTIFIER

UPDATE YourTable
SET GUID = NEWID()
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 8

添加GUID列,NOT NULL默认值为NEWID()

ALTER TABLE
    [dbo].[Text]

ADD [GUID] uniqueidentifier NOT NULL DEFAULT NEWID()
Run Code Online (Sandbox Code Playgroud)

这将自动填充现有行,插入记录时无需指定guid.