2012-04-04 6 views
2

時に失われて、次のT-SQLステートメントを持っている:SQL Server 2005の - 変数の内容は、私はSQL Server 2005を使用してい

DECLARE 
    @MP VARCHAR(500) 
SELECT 
    @MP = COALESCE(@MP + ',','') + [Name] + ',' + '(' + [Political Party] + ')' 
FROM [MPs] 
WHERE [MPs].[Region] ='Wales' 


UPDATE myTable 
SET [Names and parties] = 
(SELECT @MP 
WHERE myTable.[Local Region] ='Wales') 

これは正常に動作し、「ウェールズ@MPとmytableはを移入します存在する。しかし、私がこのステートメントを再び実行すると、今度は 'Scotland'と言って、以前に更新された 'Wales'のエントリはすべてmyTableでNULLになります。

私はここで何か不足していると思います - 2番目の検索のために@MPに別の変数名を使用すると動作しません。

+0

質問に「Wales」が2回あります。両方の場所で ''スコットランド ''に更新しましたか? – Oded

+0

こんにちはOded、私は持っている - 私はこのクエリを実行するたびに私は両方の値を同じになるように更新する – LostinShadow

答えて

2

私は、あなたはおそらく、この探していると思う:

UPDATE myTable 
SET [Names and parties] = @MP 
WHERE myTable.[Local Region] = 'Wales' 
+0

おかげでPondlifeと@SQLのDabbler! – LostinShadow

2

句が間違った場所にある第二。現在のところ、SELECTにはUPDATEではなく、あなたが望むものと思っています。

UPDATE myTable 
SET [Names and parties] = @MP 
WHERE myTable.[Local Region] ='Wales'