Обновление столбца с несколькими строками со значением uniqueidentifier - PullRequest
0 голосов
/ 15 апреля 2019

Позвольте мне начать с извинения, поскольку это может быть глупый вопрос.Я должен UPDATE столбец с типом данных uniqueidentifier, скажем, столбцы таблицы (id, имя пользователя, pwd, Uuid), где Uuid это столбец uniqueidentifier.

Этот столбец Uuid имеет несколько нулевых значений.Я должен обновить это путем создания версии uuid v1 из внешней хранимой процедуры.

Я пробовал что-то вроде приведенного ниже кода, но это не работает.(GetOptimizedUuid SP создает V1 Uuid)

DECLARE @no INT;
DECLARE @i INT;

SET @no = (SELECT COUNT(id) FROM table1)

SET @i = 0;

WHILE @i < @no  
BEGIN
    DECLARE @TempUuid TABLE (SeqUuid UNIQUEIDENTIFIER,  
                             OptimizedUuid UNIQUEIDENTIFIER)

    INSERT INTO @TempUuid
        EXECUTE [dbo].[GetOptimizedUuid]

    UPDATE table1  
    SET Uuid = (SELECT OptimizedUuid 
                FROM @TempUuid) 
    WHERE Uuid IS NULL AND LIMIT 1, @no;

    SET @i = @i + 1;
END

Если в нем 7 записей и только 2 записи имеют значение Uuid, как мне обновить, чтобы оставшиеся 5 записей Uuid имели другое значение?Заранее спасибо!

1 Ответ

0 голосов
/ 15 апреля 2019

Вы можете попробовать это.

DECLARE @affectedrows INT;

SET @affectedrows = 1;

WHILE @affectedrows > 0  
BEGIN
    DECLARE @TempUuid TABLE (SeqUuid UNIQUEIDENTIFIER,  
                             OptimizedUuid UNIQUEIDENTIFIER)

    INSERT INTO @TempUuid
        EXECUTE [dbo].[GetOptimizedUuid]

    UPDATE TOP(1) table1  
    SET Uuid = (SELECT TOP 1 OptimizedUuid 
                FROM @TempUuid) 
    WHERE Uuid IS NULL 

    SET @effectedeows = @@ROWCOUNT

END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...