我有一个函数,它以表格的形式返回 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
。其余列由函数返回。
但是上面的方法不起作用。
正确的做法是什么?
最佳答案
将您的查询更改为此
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 总是有一个值
关于sql - 如何在 INSERT 语句中使用返回表的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295522/