2

SQL Server 2005を使用していて、次のT-SQLステートメントがあります。

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')

これは正常に機能し、myTableに「Wales」が存在する@MPを入力します。ただし、今回は「Scotland」などのステートメントを再度実行すると、以前に更新された「Wales」のすべてのエントリがmyTableでNULLになります。

ここで何かが足りないと思います。2回目の検索で@MPに別の変数名を使用しても機能しません。

4

2 に答える 2

2

私はあなたがおそらくこれを探していると思います:

UPDATE myTable
SET [Names and parties] = @MP
WHERE myTable.[Local Region] = 'Wales'
于 2012-04-04T09:58:34.377 に答える
2

2番目のWHERE句が間違った場所にあります。これは現在、UPDATEではなくSELECTに適用されます。これは、あなたが望むものだと思います。

UPDATE myTable 
SET [Names and parties] =  @MP 
WHERE myTable.[Local Region] ='Wales'
于 2012-04-04T10:00:33.990 に答える