Sql server SQL-为表中具有匹配id的每条记录更新多条记录

Sql server SQL-为表中具有匹配id的每条记录更新多条记录,sql-server,Sql Server,我对更新多个记录有点陌生,我想知道解决这个问题的最佳方法,我正在编写一个存储过程,基本上我有两个表, 将服务器id与用户id相匹配的id 以及另一个表,其中包含每个用户id的记录信息,该表具有多个具有值的列 基本上是这样的: 获取tb_UserServerMap表中特定服务器id的所有匹配用户id 然后tb_设置表中的foreach userId用新值更新列您不需要foreach 更新tblName set firstCol=val1,secondCol=val2,其中(id1,id2,id3)

我对更新多个记录有点陌生,我想知道解决这个问题的最佳方法,我正在编写一个存储过程,基本上我有两个表, 将服务器id与用户id相匹配的id 以及另一个表,其中包含每个用户id的记录信息,该表具有多个具有值的列

基本上是这样的:

获取tb_UserServerMap表中特定服务器id的所有匹配用户id
然后tb_设置表中的foreach userId用新值更新列

您不需要foreach


更新tblName set firstCol=val1,secondCol=val2,其中(id1,id2,id3)中的id将是存储过程的基本结构:

CREATE PROCEDURE Blah
    @Server_ID int /* or whatever data type is appropriate */
as
    UPDATE ts
    SET
        ColumnA = 10 /* New value for column A - maybe passed as a parameter? */
        /* More columns here */
    FROM
        tb_setting ts
            inner join
        tb_UserServerMap usm
            on
                ts.user_id = usm.user_id
    WHERE
        usm.server_id = @Server_ID

如果不知道要更新的列的名称、这些值是如何获得的、数据类型等,我无法填写更多内容。

如果包括表架构和您尝试实现的预期结果(之前/之后),您可以帮助获得更好的答案。请看一些投票率较高的相关问题,了解我的意思+1。我确信这个模板很好地表达了基本思想,并且很好地开始使用。