2011-02-10 132 views
0

我在更新多个记录方面有点新,我想知道最好的方法去解决这个问题,我正在写一个存储过程基本上我有两个表, 一个匹配一个服务器ID到用户ID 和另一个表与每个用户ID的记录信息与多列与值。SQL - 用表中匹配的ID更新每个记录的多个记录

基本上这里是它会如何工作的:

获取所有匹配的用户ID为特定的服务器ID在tb_UserServerMap表 在tb_setting表,然后的foreach用户id用新值更新的列

+0

可以帮助获得更好的答案,如果你包含了你的表格模式和你想要实现的结果(之前/之后)。看看我的意思是 – keith

回答

0

你不需要在foreach,

更新tblName设置firstCol = VAL1,secondCol = VAL2其中id在你的存储过程(ID1,ID2,ID3)

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 

我不能填写更多的是不知道列的名称进行更新,这些值是如何获得的,数据类型等

+0

+1的一些较高的投票相关问题。我相信这个模板提供了很好的基本思路,并且很好的入门。 –