2013-08-05 41 views
0
CREATE TABLE dbo.Ids 
( 
    DlId nvarchar(32) NOT NULL PRIMARY KEY, 
    DlIdGUID uniqueidentifier NOT NULL 
) 

INSERT INTO dbo.Ids 
(DlId, REPLACE(DlId, DlId, newid())) 
(SELECT DISTINCT TOP 5 DriversLic FROM Student.dbo.StudDL 
WHERE DlId LIKE '%345%') 

錯誤說SQL子查詢不正確的語法轉換列NEWID()值

附近有語法錯誤('

+1

你的意圖不清楚,你想要5行的新GUID? –

+0

是的,我想將5個ID和它們的GUID插入表中.Ids – Susan

+0

呃,你需要刪除'(''SELECT'和最後一個''''''''')。也不清楚你的'REPLACE()'函數應該做什麼。如果你只是想讓整個值成爲一個新的GUID,爲什麼還要在那裏提到現有的列? –

回答

0

要插入匹配DriversLic和新的GUID;

INSERT INTO dbo.Ids (DlId, DlIdGUID) 
    (SELECT DISTINCT TOP 5 DriversLic, NEWID() 
    FROM Student.dbo.StudDL 
    WHERE DlId LIKE '%345%') 

With DISTINCT

;with T(DriversLic) as (
    select distinct top 5 DriversLic from StudDL 
) 
insert Ids 
    select DriversLic, NEWID() from T 
+0

感謝您的幫助! – Susan

+0

我收到另一個錯誤,我得到了DlId上的主鍵約束違反.. ??? – Susan

+0

我在我的子選擇中使用DISTINCT修飾符 – Susan