【问题标题】:Update single column found in multiple tables更新在多个表中找到的单个列
【发布时间】:2014-05-13 20:19:17
【问题描述】:

我的数据库的多个表中有相同的列。我需要更新包含该列的每个表,其中值等于“xxxx”。有一个非常相似的堆栈问题here 与我正在寻找的问题很接近——我只需要在我的WHERE 语句中添加另一个条件。我不确定如何将它包含在查询中,因为我不断收到语法错误。

SELECT 'UPDATE ' + TABLE_NAME + ' SET customer= ''NewCustomerValue'' '
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'customer'

我遇到的问题是如何在“WHERE”语句中包含以下行。

AND customer='xxxx'

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    这样试试

    SELECT 'UPDATE ' + TABLE_NAME + ' SET customer= ''NewCustomerValue'' where customer=''xxxx'''
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME = 'customer'
    

    【讨论】:

    • 这就是我所需要的,感谢您让我免于写出一堆单独的更新声明:)
    • 感谢@Gordon Linoff 的编辑和更正答案。欣赏它。
    【解决方案2】:

    试试这个:

    ' AND customer=''xxxx''  ' --(two ' inside a string = ')
    

    【讨论】:

    • 如果您解释或包含关于为什么需要这样做的参考(两个单引号实现什么)会很好。
    • 在 T-SQL 中,当你想在一个字符串中包含一个单引号时,你需要使用两个单引号。这样做的原因是允许 SQL Server 识别这不是一段代码,而是一个字符串值。
    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2019-12-21
    • 2015-10-03
    相关资源
    最近更新 更多