我想知道如何将所有列的所有数据转换为UPPERCASE以及表中的值。数据可能包含int
,但会忽略它。我做的是手动更新第1列1,这很费时间。
是否有任何声明:
UPDATE cust SET cust.* = UPPER(cust.*)
谢谢〜
答案 0 :(得分:4)
动态SQL可能是您唯一的选择。这样的事情应该使用FOR XML
查询INFORMATION_SCHEMA.COLUMNS
:
declare @query varchar(max)
set @query = ''
select @query =
STUFF((
select ';UPDATE ' + table_name + ' SET ' + column_name + ' = UPPER(' + column_name + ')'
from INFORMATION_SCHEMA.COLUMNS
order by table_name, column_name
for xml path('')
), 1, 1, '')
execute(@query);
答案 1 :(得分:2)
不幸的是,你不能直接这样做。您需要指定需要更新的每个列名称。例如
UPDATE tablename
SET col = UPPER(col)
colN = UPPER(colN)
但是,这不是世界末日。您仍然可以使用动态SQL 来完成此操作。