Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вмъкване на данни чрез функция с таблично значение в SQL Server

В 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 |
+---------+-----------+------------+

Така че успешно вмъкнах нова котка, използвайки вградената функция с таблица.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване на символи в средата на низ в SQL Server (T-SQL)

  2. Oracle:има ли инструмент за проследяване на заявки, като Profiler за sql сървър?

  3. Как да коригирате „Процедурата очаква параметър „@statement“ от тип „ntext/nchar/nvarchar“.“ Грешка в SQL Server

  4. Вземете броя на неуспешните опити за влизане поради грешна парола в SQL Server (T-SQL)

  5. Как да използвате SqlTransaction в C#