Сгенерировать направляющую для таблицы без петли - PullRequest
2 голосов
/ 23 марта 2012

У меня есть таблица с 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().Любой вариант, как сделать это без цикла?

Ответы [ 3 ]

9 голосов
/ 23 марта 2012

Просто добавьте пустой столбец, а затем выполните UPDATE.

ALTER TABLE YourTable
ADD GUID UNIQUEIDENTIFIER

UPDATE YourTable
SET GUID = NEWID()
8 голосов
/ 23 марта 2012

Добавить столбец GUID как NOT NULL со значением по умолчанию NEWID()

ALTER TABLE
    [dbo].[Text]

ADD [GUID] uniqueidentifier NOT NULL DEFAULT NEWID()

Это автоматически заполнит существующие строки, и вам не нужно будет указывать guid при вставке записей.

0 голосов
/ 23 марта 2012

Вы можете добавить столбец и обновить значение или создать постоянный столбец, который имеет ограничение по умолчанию с 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...