2016-08-23 9 views
-1

Prod/Testがあるシナリオがあります。テスト環境では、データベースの更新後にUPDATEを実行してすべてを元に戻すことができるようにするために、多くの列を持つ設定テーブル(行)があります。選択結果に基づいて行のUPDATE文を印刷しますか?

この選択は、保存したい列の行を返します。

select * from mysettings a where a.company = 'abc'

動的にこのような何かを、この結果を取得し、出力する方法はあります:

UPDATE mysettings 
    set field1 = 'some str', 
     field2 = 2, 
     field3 = 234234, 
     field4 = '2016-08-23 18:51:42.000', 
     ... 
    where mysettings.company = 'abc' 

私は動的に言う理由は、私はさまざまな企業や環境を持っており、また、一部のフィールドがstringsあるあります、intdatetimeなどであり、最終的な「ステップ」としてこのスクリプトを保存することが目的です。

編集:INSERTの代わりにUPDATEが必要です。

How to export all data from table to an insertable sql format?

+0

selectの結果を更新することができますか? – TheGameiswar

+0

基本的に。元のデータで同じ行を更新できるように後で実行するために* .sqlファイルに保存したいと思っています。同じ行と同じテーブルなので、selectから更新しないでください。 –

+0

これは役に立ちますか? [リンク](http://stackoverflow.com/questions/224732/sql-update-from-one-table-to-another-based-on-a-id-match) –

答えて

0

でしょうあなたのために、この作品のようなもの?

SELECT 'UPDATE mysettings 
SET field1 = ''' + mysettings.field1 + ''', 
SET field2 = ''' + mysettings.field2 + ''', 
... 
WHERE mysettings.company = ''' + @company_name + '''' 
FROM mysettings WHERE mysettings.compnay = @company_name 
+0

私はそうだと思いますが、 'SET'行を動的に作成する必要があります –

関連する問題