В SQL Server е възможно да се вмъкнат данни чрез функция с таблично стойност (TVF).
Под това имам предвид вмъкване на редове в основните таблици, които функцията отправя заявки.
За да вмъкнете нов ред чрез TVF, просто използвайте същия T-SQL INSERT
синтаксис, който бихте използвали, ако вмъквате данни директно в таблицата.
Пример
Ето един бърз пример за демонстрация.
Функцията
Ето една бърза функция, която избира основни данни от таблица.
CREATE FUNCTION dbo.udf_Cats_ITVF() RETURNS TABLE AS RETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats ); GO
Тази функция избира всички редове от таблица.
Бих могъл да използвам тази функция, за да вмъкна нов ред в тази таблица.
Изберете данни с функцията
Ето как обикновено бихме извикали функцията с SELECT
изявление. Това ни позволява да видим текущите данни в основната таблица.
SELECT * FROM udf_Cats_ITVF();
Резултат:
+---------+-----------+------------+ | CatId | CatName | Phone | |---------+-----------+------------| | 1 | Garfield | 9871237654 | | 2 | Felix | 8871237651 | | 3 | Tom | 7871237652 | | 4 | Fetch | 6871237653 | +---------+-----------+------------+
Така че има четири реда.
Вмъкване на ред чрез функцията
Сега нека използваме TVF, за да добавим нов ред.
INSERT INTO udf_Cats_ITVF() VALUES ('Scratchy', '1111111111'); SELECT * FROM udf_Cats_ITVF();
Резултат:
+---------+-----------+------------+ | CatId | CatName | Phone | |---------+-----------+------------| | 1 | Garfield | 9871237654 | | 2 | Felix | 8871237651 | | 3 | Tom | 7871237652 | | 4 | Fetch | 6871237653 | | 5 | Scratchy | 1111111111 | +---------+-----------+------------+
Така че успешно вмъкнах нова котка, използвайки вградената функция с таблица.