根据选择结果打印行的UPDATE语句?

时间:2016-08-23 19:11:38

标签: sql sql-server tsql select-query

我有一个场景,其中有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'

我说动态的原因是我有不同的公司和环境,还有一些字段是stringsintdatetime等,目标是将此脚本保存为执行的最后“步骤”。

编辑:与此方法类似,我需要INSERT代替UPDATE

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

1 个答案:

答案 0 :(得分:0)

这样的事情对你有用吗?

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