1

テーブルのすべての列名とそれらの値のすべてのデータを大文字に変換する方法を知りたいです。データには含まれている可能性がありますintが、無視されます。私がしたことは、時間がかかる列1を1つずつ手動で更新することでした。

次のようなステートメントはありますか?

UPDATE cust SET cust.* = UPPER(cust.*)

ありがとう〜

4

2 に答える 2

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);

SQL フィドルのデモ

于 2013-04-03T03:31:04.583 に答える
2

残念ながら、直接アクセスすることはできません。更新が必要な各列名を指定する必要があります。例えば

UPDATE tablename
SET    col = UPPER(col)
       colN = UPPER(colN)

しかし、それは世界の終わりではありません。あなたはまだそれを行うことができますが、動的 SQLを使用します。

于 2013-04-03T03:23:43.807 に答える