在T-SQL

时间:2016-04-22 11:05:11

标签: sql-server tsql

我的公司使用Microsoft SQL Server Management Studio和T-SQL来实现其数据库功能。我的团队执行的日常活动之一是更新包含大约4k-5k记录的视图中的数据。

假设视图有10个字段。因此,考虑到field_5field_1field_2的值,我们的工作是更改field_7的值。我们一直在手动完成,需要大约2-3个小时才能完成所有5k记录并检查所有字段'值并更新必填字段。

我想到了自动执行任务并为它构建脚本但我似乎无法在MSDN上找到任何内容。我得到的最接近的是这个 - https://msdn.microsoft.com/en-us/library/ms178076.aspx。但它讨论的是改变视图的结构,而不是在保留结构的同时更新视图内的数据。进一步的谷歌搜索也没有多大帮助。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

视图的定义是什么?它是否符合可更新视图的标准?如果是这样,您只需要更新声明。

一个简单的例子是

UPDATE YourView
SET Field5 = Field1+Field2+Field7

否则,如果它不符合要求,您可以编写一个而不是触发器来实现所需的逻辑,并仍使用更新语句。

答案 1 :(得分:0)

好的,您使用“查看”一词,但我认为您的意思是“表格”?视图是动态的(除索引视图外)实际上不存储数据,它们存储在调用视图时运行某组代码的查询。

假设你在谈论一张桌子,你正在寻找类似下面的东西;

UPDATE table
SET field_5 = (field_1 + field_2 + field_7)

这将改变每行中的field_5以匹配您的计算。