NEWID()为关系中的所有记录生成相同的值

Big*_*z92 1 sql sql-server insert uniqueidentifier newid

DECLARE @GUID uniqueidentifier 
SET @GUID = NEWID()

INSERT INTO [MetaData Dummy].dbo.xxxx (someid, somename, LastUpdated, RecordSource)
SELECT @GUID, TempCol, GETDATE(), xxx
FROM AP_DevIDs
Run Code Online (Sandbox Code Playgroud)

使用上面的代码我试图在属性someid的每个记录中插入一个值,其类型为uniqueidentifier.但是,使用NEWID()函数,我在每条记录中获得相同的值,因此显然不是唯一的.

欢迎任何帮助,欢呼

Luk*_*zda 7

因为您将值绑定到变量,所以您始终获得相同的值,您需要每行生成它.使用:

INSERT INTO [MetaData Dummy].dbo.xxxx (someid, somename, LastUpdated, RecordSource)
SELECT NEWID(), TempCol, GETDATE(), xxx
FROM AP_DevIDs
Run Code Online (Sandbox Code Playgroud)