SQL Server 2005 - 变量内容丢失

标签 sql t-sql sql-server-2005 variables coalesce

我使用的是 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')

这工作正常,并且会用 @MP 填充 myTable,其中存在“Wales”;但是,如果我再次运行该语句,这次使用“苏格兰”,所有先前更新的“威尔士”条目将在 myTable 中变为 NULL。

我想我在这里遗漏了一些东西 - 在第二次搜索中为 @MP 使用不同的变量名称不起作用。

最佳答案

我想您可能正在寻找这个:

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

关于SQL Server 2005 - 变量内容丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008687/

相关文章:

MySQL 如果不为空

Java SQL 准备语句问题与数组和Where...IN 列表

sql - 如何避免SQL中的 "divide by zero"错误?

c# - SQL Server 连接字符串的连接池设置

sql - 如何在整数列上指定 "Like"?

php - CakePHP 两次加入同一模型

t-sql - 将 varchar 转换为 float 为 bigint

sql-在执行中超出变量大小?

c# - SQL 连接并按用户过滤 - 多重连接

sql - TSQL 将结果集平均划分为组并更新它们