Как использовать функцию, которая возвращает таблицу в инструкции INSERT? - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть функция, которая возвращает 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 голосов
/ 12 сентября 2018

измените ваш запрос на этот

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 всегда имеет одно значение

...