我们有一个主表如下:
tbl_PMSMaster:
<style type="text/css">
table.tableizer-table {
border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
.tableizer-table td {
padding: 4px;
margin: 3px;
border: 1px solid #ccc;
}
.tableizer-table th {
background-color: #104E8B;
color: #FFF;
font-weight: bold;
}
</style><table class="tableizer-table">
<tr class="tableizer-firstrow"><th>SrNo</th><th>CLSID</th><th>Table_Name</th><th>EvaluatorName</th></tr>
<tr><td>1</td><td>1234567891</td><td>tbl_InboundMonitoring</td><td>NULL</td></tr>
<tr><td>2</td><td>9820247015</td><td>tbl_FOCaseEval</td><td>NULL</td></tr>
<tr><td>3</td><td>4567890</td><td>tbl_InboundMonitoring</td><td>NULL</td></tr>
<tr><td>4</td><td>1111111</td><td>tbl_RetentionEvaluation</td><td>NULL</td></tr>
</table>
不同的表,如tbl_InboundMonitoring,tbl_FOCaseEval,tbl_RetentionEvaluation等。所有这些表都有列CLSID和EvaluatorName,这些列在数据输入时填充。
需要更新仅填充CLSID列的tbl_PMSMaster中的Column EvaluatorName。
如何使用连接或使用这两个表和sys.tables进行更新?
答案 0 :(得分:0)
试试这个:
UPDATE tbl_PMSMaster p SET p.EvaluatorName = i.EvaluatorName
INNER JOIN tbl_InboundMonitoring i ON i.CLSID = p.CLSID
在这种情况下我只使用了tbl_InboundMonitoring
,但你可以用你提到的任何其他表替换它,或以相同的方式加入其他表。
<强>更新强>
DECLARE @Query VARCHAR(MAX)
DECLARE @TableToUpdate VARCHAR
DECLARE @TableFrom VARCHAR
SET @TableToUpdate = 'tbl_PMSMaster'
SET @TableFrom = 'tbl_InboundMonitoring'
SET @Query = 'UPDATE ' + @TableToUpdate + ' p SET p.EvaluatorName = i.EvaluatorName
INNER JOIN '+ @TableFrom +' i ON i.CLSID = p.CLSID'
EXEC(@Query)