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

时间:2015-11-17 16:38:17

标签: 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

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

任何帮助表示赞赏,欢呼声

1 个答案:

答案 0 :(得分:7)

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

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