Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Usuń dane za pomocą funkcji wartościującej tabelę w SQL Server

W programie SQL Server można użyć funkcji z wartościami przechowywanymi w tabeli (TVF) do usunięcia danych z tabel źródłowych, do których wysyła zapytania TVF.

Aby usunąć dane z tabeli za pomocą TVF, po prostu użyj tego samego T-SQL DELETE składnia, której użyjesz, usuwając wiersz bezpośrednio z tabeli.

Przykład

Oto krótki przykład do zademonstrowania.

Funkcja

Oto szybka wbudowana funkcja z wartościami tabelarycznymi, 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.

Mogę również użyć tej funkcji do usunięcia wierszy z 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 |
| 5       | Scratchy  | 1111111111 |
+---------+-----------+------------+

Więc jest pięć rzędów.

Usuńmy Scratchy.

Usuń wiersz za pomocą funkcji

Teraz użyjmy TVF, aby usunąć wiersz.

DELETE FROM udf_Cats_ITVF()
WHERE CatId = 5;   

SELECT * FROM udf_Cats_ITVF();

Wynik:

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

Więc pomyślnie usunąłem Scratchy za pomocą wbudowanej funkcji z wartościami w tabeli.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować localdb osobno?

  2. Jak zadokować / oddokować zapytania dotyczące okien i innych kart w SQL Server Management Studio (SSMS) — samouczek SQL Server / TSQL, część 21

  3. Jak rozszerzyć wartości oddzielone przecinkami do oddzielnych wierszy przy użyciu programu SQL Server 2005?

  4. Czy istnieje funkcja Max w SQL Server, która przyjmuje dwie wartości, takie jak Math.Max ​​w .NET?

  5. SQL Select Nadchodzące urodziny