我有一张约有10列的表格,其中包含约5000行数据。我想弄清楚是否用小写字母填充了任何列的任何字段,然后我需要对其进行修复。因为,对于ETL流程,我需要所有列都大写。
我猜是否有一个查询将所有字母数字列或大写的任何列都应该工作。但是我很好奇也知道如何在整个表中为所有列查找小写字段,因此我知道需要更改什么。
以此为例表

表:学生;
列:f_name,l_name,id,地址,城市,州,邮政编码

最佳答案

OP提到他想在更改之前先查看更改。这将创建一个临时表,其中显示更改,然后回滚UPDATE查询。

BEGIN TRAN

DECLARE @Changes TABLE (
    OLD_f_name VARCHAR(MAX)
    ,NEW_f_name VARCHAR(MAX)
    )

UPDATE Student
SET f_name = UPPER(f_name)
OUTPUT deleted.f_name
    ,inserted.f_name
INTO @Changes(OLD_f_name, NEW_f_name);

SELECT * FROM @Changes

ROLLBACK TRAN


要实际执行更新,请使用COMMIT TRAN而不是ROLLBACK TRAN

09-28 12:48