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

时间:2011-02-10 07:28:05

标签: sql-server

我对更新多个记录有点新意,我想知道最好的方法继续解决此问题,我正在写一个存储过程基本上我有两个表, 将服务器标识与用户标识匹配的标识 和另一个表,其中包含每个用户ID的记录信息,其中包含多个带值的列。

基本上这是它的运作方式:

获取tb_UserServerMap表中特定服务器ID的所有匹配用户ID 然后使用tb_setting表中的foreach userId更新具有新值的列

2 个答案:

答案 0 :(得分:1)

存储过程的基本结构如下:

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 :(得分:0)

你不需要foreach,

更新tblName设置firstCol = val1,secondCol = val2其中id为(id1,id2,id3)