Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SQL update语句更新部分文本_Sql_Sql Server - Fatal编程技术网

如何使用SQL update语句更新部分文本

如何使用SQL update语句更新部分文本,sql,sql-server,Sql,Sql Server,我在一个名为sqlcode的表的列中保存了一个查询,该表维护元数据。例如,下面是一个查询: select id, name, address, phone, ....... ...... , upddate from bank a join bankreg b on a.id = b.id where (condition) 我正在尝试更新保存在元数据中的查询文本,但我只想更新查询的列名部分,而不更改select、from、J

我在一个名为
sqlcode
的表的列中保存了一个查询,该表维护元数据。例如,下面是一个查询:

select 
    id, name, address, phone,
    .......
    ......
    , upddate 
from 
    bank a
join 
    bankreg b on a.id = b.id 
where 
    (condition)
我正在尝试更新保存在元数据中的查询文本,但我只想更新查询的列名部分,而不更改select、from、JOIN或任何其他条件。任何只更新列名的方法都会有帮助。我尝试使用
replace
函数,但无法获得所需的输出


我想用主表中的列更新此文本查询的列。若在master中添加了新列,我想将它们也添加到元数据查询中,元数据查询以文本形式保存<代码>信息\u架构。列现在为我提供了列名,我只想将这些列名更新到上面的查询

如果将需要更新的列括在括号中,则可以在替换中更新它们,而无需更新选择部分中的项

select 
id,name,address,phone,
.......
......
,upddate 
from bank a
join bankreg b 
on 
a.id = b.id 
where ([address] = 'My Street')
您的更新将是:

UPDATE MyTable SET MyCol = REPLACE(MyCol , '[address]', '[some_other_field]') 

是否要重命名“选择零件”中的列名称

使用
currentNAme作为NewName,
currentNAme NewName,
作为每个要重命名的名称

取决于DBMS是否支持一种或另一种语法或两种语法(sql server->go with AS)。使用1个列名进行测试,看看哪一个有效,然后使用该列名直到结束

select 
id AS myNameForId,
name AS myNmeForName,
.......
......
,upddate 
from bank AS a
join bankreg AS b 
on 
a.id = b.id 
where (condition)


我今天把水晶球忘在家里了。你能提供一些细节以便我们能提供帮助吗?你想干什么?你试了什么?什么不起作用?您不能每次都使用INFORMATION\u SCHEMA.COLUMNS中的数据重新生成整个语句吗?这可能比使用“替换”更容易。如果您只有这些,我们将如何帮助您?????学习如何提问。我想用一组新列完全替换所有列,这些新列以
nvarchar
的形式保存在变量中。您不能用查询结果中不存在的列替换列。想象一下像过滤器这样的部分,您要从可用列表(当您执行下面的所有联接时)中选择哪些列。您可以重命名这些列或保留原始名称,但不能随意从其他地方添加列。
select 
id myNameForId,
name myNmeForName,
.......
......
,upddate 
from bank a
join bankreg b 
on 
a.id = b.id 
where (condition)