SQL Server 大写表示表中所有列的所有数据

4 L*_*ver 1 t-sql sql-server

我想知道如何将表中所有列名称及其值的所有数据转换为大写。数据可能包含int但它会忽略它。我所做的就是手动将第 1 列更新为 1,这非常耗时。

有没有类似这样的说法:

UPDATE cust SET cust.* = UPPER(cust.*)
Run Code Online (Sandbox Code Playgroud)

谢谢~

sge*_*des 5

动态 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);
Run Code Online (Sandbox Code Playgroud)

SQL 小提琴演示