Распечатать оператор UPDATE для строки на основе выбранных результатов?

У меня есть сценарий, в котором есть Prod/Test, а в тестовой среде у меня есть таблица настроек (строка) со многими столбцами, которые я хотел бы иметь возможность запустить 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, int, datetime и т. д., и цель состоит в том, чтобы сохранить этот сценарий в качестве последнего «шага» для выполнения.

EDIT: Аналогично этому методу, за исключением того, что вместо INSERT я хочу UPDATE.

Как экспортировать все данные из таблицы в вставляемый формат sql?


person William YK    schedule 23.08.2016    source источник
comment
Вы спрашиваете, можем ли мы преобразовать результаты выбора в обновление?   -  person TheGameiswar    schedule 23.08.2016
comment
В основном. Чтобы я мог обновить ту же строку исходными данными. Я хочу сохранить его в файл *.sql для запуска позже. Так что не обновляйте выбор, потому что это одна и та же строка и одна и та же таблица.   -  person William YK    schedule 23.08.2016
comment
Это помогает? Ссылка   -  person Sumeet Gupta    schedule 23.08.2016
comment
просто сделайте резервную копию и используйте слияние, возможно   -  person scsimon    schedule 23.08.2016


Ответы (1)


Будет ли что-то подобное работать для вас?

SELECT 'UPDATE mysettings 
SET field1 = ''' + mysettings.field1 + ''',
SET field2 = ''' + mysettings.field2 + ''',
...
WHERE mysettings.company = ''' + @company_name + ''''
FROM mysettings WHERE mysettings.compnay = @company_name
person Robert Sievers    schedule 23.08.2016
comment
Я так думаю, но мне нужно динамически создавать строки SET - person William YK; 24.08.2016