如何使用在INSERT语句中返回表的函数?

时间:2018-09-12 12:44:27

标签: sql sql-server sql-server-2016

我有一个函数返回一个表的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。其余的列由该函数返回。

但是上面的方法不起作用。

正确的方法是什么?

1 个答案:

答案 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总是具有一个值,因此它总是返回相同的结果

相关问题