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

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

В SQL Server е възможно да се използва функция с стойност на таблица (TVF) за изтриване на данни от основните таблици, които TVF заявява.

За да изтриете данните от таблицата чрез TVF, просто използвайте същия T-SQL DELETE синтаксис, който бихте използвали, ако изтривате ред от таблицата директно.

Пример

Ето един бърз пример за демонстрация.

Функцията

Ето бърза вградена функция с таблица, която избира основни данни от таблица.

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 |
| 5       | Scratchy  | 1111111111 |
+---------+-----------+------------+

Така че има пет реда.

Нека изтрием Scratchy.

Изтриване на ред чрез функцията

Сега нека използваме TVF, за да изтрием ред.

DELETE FROM udf_Cats_ITVF()
WHERE CatId = 5;   

SELECT * FROM udf_Cats_ITVF();

Резултат:

+---------+-----------+------------+
| CatId   | CatName   | Phone      |
|---------+-----------+------------|
| 1       | Garfield  | 9871237654 |
| 2       | Felix     | 8871237651 |
| 3       | Tom       | 7871237652 |
| 4       | Fetch     | 6871237653 |
+---------+-----------+------------+

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Календарна таблица за Data Warehouse

  2. Най-добри практики за аварийно възстановяване на Microsoft SQL Server

  3. SQL Server Промяна на местоположението на TempDB файла

  4. Как да сравните datetime само с дата в SQL Server

  5. Филтриране по опции OFFSET-FETCH в заявка за избор - SQL Server / TSQL урок, част 118