W SQL Server możliwe jest wstawianie danych za pomocą funkcji z wartościami tabelarycznymi (TVF).
Rozumiem przez to wstawianie wierszy w tabelach bazowych, które funkcja wykonuje zapytania.
Aby wstawić nowy wiersz przez TVF, po prostu użyj tego samego T-SQL INSERT
składnia, której użyjesz, wstawiając dane bezpośrednio do tabeli.
Przykład
Oto krótki przykład do zademonstrowania.
Funkcja
Oto szybka funkcja, która wybiera podstawowe dane z tabeli.
CREATE FUNCTION dbo.udf_Cats_ITVF() RETURNS TABLE AS RETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats ); GO
Ta funkcja wybiera wszystkie wiersze z tabeli.
Mógłbym użyć tej funkcji, aby wstawić nowy wiersz do tej tabeli.
Wybierz dane za pomocą funkcji
Oto jak normalnie wywołalibyśmy funkcję za pomocą SELECT
oświadczenie. Dzięki temu możemy zobaczyć aktualne dane w tabeli bazowej.
SELECT * FROM udf_Cats_ITVF();
Wynik:
+---------+-----------+------------+ | CatId | CatName | Phone | |---------+-----------+------------| | 1 | Garfield | 9871237654 | | 2 | Felix | 8871237651 | | 3 | Tom | 7871237652 | | 4 | Fetch | 6871237653 | +---------+-----------+------------+
Więc są cztery rzędy.
Wstaw wiersz za pomocą funkcji
Teraz użyjmy TVF, aby dodać nowy wiersz.
INSERT INTO udf_Cats_ITVF() VALUES ('Scratchy', '1111111111'); SELECT * FROM udf_Cats_ITVF();
Wynik:
+---------+-----------+------------+ | CatId | CatName | Phone | |---------+-----------+------------| | 1 | Garfield | 9871237654 | | 2 | Felix | 8871237651 | | 3 | Tom | 7871237652 | | 4 | Fetch | 6871237653 | | 5 | Scratchy | 1111111111 | +---------+-----------+------------+
Więc udało mi się wstawić nowego kota za pomocą wbudowanej funkcji z wartościami tabelarycznymi.