テーブルのすべての列名とそれらの値のすべてのデータを大文字に変換する方法を知りたいです。データには含まれている可能性がありますint
が、無視されます。私がしたことは、時間がかかる列1を1つずつ手動で更新することでした。
次のようなステートメントはありますか?
UPDATE cust SET cust.* = UPPER(cust.*)
ありがとう〜
テーブルのすべての列名とそれらの値のすべてのデータを大文字に変換する方法を知りたいです。データには含まれている可能性がありますint
が、無視されます。私がしたことは、時間がかかる列1を1つずつ手動で更新することでした。
次のようなステートメントはありますか?
UPDATE cust SET cust.* = UPPER(cust.*)
ありがとう〜
動的 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);
残念ながら、直接アクセスすることはできません。更新が必要な各列名を指定する必要があります。例えば
UPDATE tablename
SET col = UPPER(col)
colN = UPPER(colN)
しかし、それは世界の終わりではありません。あなたはまだそれを行うことができますが、動的 SQLを使用します。