我有一个函数返回一个表的5列(地址)。我需要使用结果插入到另一个表中:
INSERT INTO mytable
(col1, address1, address2, address3, address4, address5)
SELECT
Id, HouseNo, Street, PostCode, City, Country
FROM @someTableType
JOIN dbo.GetAddress(@customerId);
Id
列来自@someTableType
。其余的列由该函数返回。
但是上面的方法不起作用。
正确的方法是什么?
答案 0 :(得分:2)
将查询更改为此
INSERT INTO mytable
(col1, address1, address2, address3, address4, address5)
SELECT
someTableType.Id, adress.HouseNo, adress.Street, adress.PostCode, adress.City,
adress.Country
FROM @someTableType
Cross Apply dbo.GetAddress(@customerId) as adress;
但是您具有更改功能,因为@customerId总是具有一个值,因此它总是返回相同的结果