我有一个名为dbo.SalesmanAccts的存储过程,它返回以下数据:
我想用dbo.SalesmanAccts的结果更新标题和详细信息表,即SalesmanHeader和SalesmanDetail。 我想INSERT INTO SalesmanHeader(SalesmanID,SalesmanName,SalesmanAddress),这没问题。
棘手的部分如下。 我想在SalesmanDetail表中为每个帐户插入每个销售员的MULTIPLE记录。也就是说,我希望SalesmanDetail表看起来如下所示:
请注意,account1,account 2和account3都作为单独的记录存储在SalesmanDetail表中。
有没有办法循环dbo.SalesmanAccts的结果,让它在一个新的存储过程中同时执行INSERT INTO语句,而不创建一个单独的用于插入标题记录而另一个用于插入详细记录? 这甚至可能吗?
我正在研究SQL Server 2008R2
提前致谢!
答案 0 :(得分:1)
INSERT SalesmanDetail
(SalesmanID, SalesmanName, Account)
SELECT SalesmanID, SalesmanName, Account
FROM dbo.SalesmanAccts
UNPIVOT (Account FOR AccountNumber IN (Account1,Account2,Account3) ) p