2014-01-31 19 views
0

我必須使用xmlpath獲取連接字符串的結果來更新表列。Sql:使用xmlPath獲取連接字符串的行

對於爲例,我必須做這樣的事情

Update table c 
set c.languages = 
(SELECT '\r\n'+rl.Name AS [text()] 
    from ResourceLanguage as rl 
     where rl.resource_Id=c.resource_Id 
    FOR XML PATH ('')) 

我得到一個錯誤「附近有語法錯誤C」。

P.S:在我爲例,該領域的語言是類型爲nvarchar(最大)

有人可以幫助我嗎? 感謝

+0

從'c.languages'和'c.resource_Id'中刪除'c'。 –

+0

謝謝。但仍然無法工作。我有錯誤錯誤語法附近的關鍵字'從'(從第一個) – user1845394

回答

0

我找到了解決辦法。 這是它:

DECLARE @tempTable TABLE 
(
    Id int, 
    Languages nvarchar(max) 
) 

INSERT @tempTable (Id, Languages) 
(
    select r1.resource_Id, Stuff((select', '+ rl.Name as [text()] 
     from ResourceLanguage as rl 
     where rl.resource_Id=c.resource_Id 
     for xml path(''), type).value('.', 'nvarchar(250)'), 1, 2, '') 
    from Resource r1 
) 

Update Resource 
Set Languages = temp.Languages 
    FROM @tempTable temp 
    where resource_Id=temp.resource_Id 
0

寫這個方式 可幫助您

這是一個演示代碼,這個你一定要試試這樣:

UPDATE Table_1 

SET c = 

(

SELECT (SELECT 'White' AS Color1, 

'Blue' AS Color2, 

'Black' AS Color3, 

'Light' AS 'Color4/@Special', 

'Green' AS Color4, 

'Red' AS Color5 

FOR 

XML PATH('Colors'), 

TYPE 

), 

(SELECT 'Apple' AS Fruits1, 

'Pineapple' AS Fruits2, 

'Grapes' AS Fruits3, 

'Melon' AS Fruits4 

FOR 

XML PATH('Fruits'), 

TYPE 

) 
FOR XML PATH(''), 

ROOT('SampleXML')) 
+0

這是我寫的!不起作用 – user1845394

+0

編輯我的答案檢查 – pankeel