SQL Server 2008插入记录然后根据另一个表更新字段

时间:2014-07-16 23:49:08

标签: sql-server sql-server-2008 tsql sql-server-2008-r2

在我的搜索中,我找到了很多线程来处理我的问题,但是我找不到一个明确定义答案的答案。

是的我是SQL Server的菜鸟。

这是我想要做的事情我需要知道最好的方法。出于这个问题的目的,我会保持简单。请记住,这是我想要的功能

我有桌子A

ClientName,
manager name,
Location

表B

Manager name
Manager location

表C

Random columns,
Client name,
Manager name

我想

  • 获取从SELECT [client name], [manager name] from table c
  • 返回的行
  • 将这些行插入table a,并已定义@clientname@manager个名称参数。

插入行后,将显示

tableA.location = Select [manager location] 
                  from tableb  
                  where @manager = tableb.[manager name]

这些需要在一次调用中批量生成多行

这是时间点数据,因此没有查找和全面更新查询

使用功能?

存储过程?

触发器可能不是答案,因为我将在每次调用时输入500多行

提前谢谢

1 个答案:

答案 0 :(得分:0)

很难相信你找不到与你的问题密切相关的东西。你应该做的只是

insert TableA
select C.ClientName, C.ManagerName, B.Location
from TableC C
join TableB B on B.ManagerName = C.ManagerName
where C.ManagerName = @ManagerName and C.ClientName = @clientname

您声明的使用案例使您看起来应该将其包装在存储过程中。实际上,上面的陈述是存储过程的整个主体

create proc sotest(@clientname varchar(40), @managername varchar(40)) as
begin
-- code above
end

由于您已定义问题(假设您要填充“位置”列),因此无法避免从TableB查找位置。