none
全てのフィールドを一括置換する方法 RRS feed

  • 質問

  • SQL2005を使用しています。

    特定のフィールドではなく、すべてのフィールドを置換する方法はありますでしょうか。

    フィールド数が20あるため、一個一個以下のような記述をするのは効率的ではないと思い、質問させていただきました。

    update dbo.Jinji set 社員名= replace(社員名,'"','')

    よろしくお願いします。

    2011年3月30日 1:01

回答

  • 多分一つのカラムを色々な条件で更新したいのではなくて、

    複数のカラムを一度に更新したいって事じゃないですかね?

     

    ストアドでテーブルのカラム一覧を取得して更新SQLを生成する事は出来ると思いますが、

    普通にUPDATE文を書く場合には、更新したいカラム毎の更新文を全て記述するしかないと思います。

    • 回答としてマーク 山本春海 2011年4月21日 4:38
    2011年4月1日 0:56
  • 私もaviatorさんと同じように受け取りました。であれば、以下が参考になるのではないかと思います。

    Replace all occurrences in all columns in all tables?
    http://alexduggleby.com/2008/05/09/off-topic-t-sql-replace-all-occurrences-in-all-columns-in-all-tables/

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年4月21日 4:38
    2011年4月1日 1:22
  • 副問い合わせすれば良いのでわ

    以下の例は、頭の文字を変換する例です
    10ほげほげ
    10フーバー

    20ほげほげ
    20フーバー

    UPDATE [test].[dbo].[User] 
    
     SET [test].[dbo].[User].[Name] = replace(
    (Select B.[Name] From [test].[dbo].[User] AS B
    Where [test].[dbo].[User].[ID]=B.[ID])
    ,'10',
    '20') GO

    • 回答としてマーク 山本春海 2011年4月21日 4:38
    2011年3月30日 4:17

すべての返信

  • 副問い合わせすれば良いのでわ

    以下の例は、頭の文字を変換する例です
    10ほげほげ
    10フーバー

    20ほげほげ
    20フーバー

    UPDATE [test].[dbo].[User] 
    
     SET [test].[dbo].[User].[Name] = replace(
    (Select B.[Name] From [test].[dbo].[User] AS B
    Where [test].[dbo].[User].[ID]=B.[ID])
    ,'10',
    '20') GO

    • 回答としてマーク 山本春海 2011年4月21日 4:38
    2011年3月30日 4:17
  • 多分一つのカラムを色々な条件で更新したいのではなくて、

    複数のカラムを一度に更新したいって事じゃないですかね?

     

    ストアドでテーブルのカラム一覧を取得して更新SQLを生成する事は出来ると思いますが、

    普通にUPDATE文を書く場合には、更新したいカラム毎の更新文を全て記述するしかないと思います。

    • 回答としてマーク 山本春海 2011年4月21日 4:38
    2011年4月1日 0:56
  • 私もaviatorさんと同じように受け取りました。であれば、以下が参考になるのではないかと思います。

    Replace all occurrences in all columns in all tables?
    http://alexduggleby.com/2008/05/09/off-topic-t-sql-replace-all-occurrences-in-all-columns-in-all-tables/

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年4月21日 4:38
    2011年4月1日 1:22
  • こんにちは、mchikara さん。
     
    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
    かなり時間が経ちましたが、その後いかがでしょうか。みなさんからのアドバイスは確認いただけましたでしょうか。

    有効なアドバイスをいただいているかと思いましたので、勝手ながら私のほうで一旦回答としてマークさせていただきました。
    Chuki さん、aviator__ さん、trapemiya さん、アドバイスありがとうございます。

    いただいた情報の中で、解決に役立った投稿や、参考になる情報などの有効な情報には回答としてマークすることをお願いしています。
    今後、同じ問題でこのスレッドを参照される方にも、有効な情報がわかりやすくなるかと思いますのでご協力よろしくお願いいたします。

    もし、回答内容が意図されていることと違っているといった場合には、ご質問を続けてくださいね。
    よろしくお願いいたします。それでは。
                                                                     
    日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海

     

    2011年4月21日 4:38