Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Xóa dữ liệu thông qua một hàm có giá trị bảng trong SQL Server

Trong SQL Server, có thể sử dụng hàm định giá trị bảng (TVF) để xóa dữ liệu khỏi các bảng bên dưới mà TVF truy vấn.

Để xóa dữ liệu bảng qua TVF, chỉ cần sử dụng cùng một T-SQL DELETE cú pháp mà bạn sẽ sử dụng nếu xóa trực tiếp một hàng khỏi bảng.

Ví dụ

Dưới đây là một ví dụ nhanh để chứng minh.

Chức năng

Đây là một hàm định giá bảng nội tuyến nhanh chóng để chọn dữ liệu cơ bản từ một bảng.

CREATE FUNCTION dbo.udf_Cats_ITVF()
    RETURNS TABLE
AS
RETURN (
    SELECT 
        CatId,
        CatName,
        Phone
    FROM dbo.Cats
    );
GO

Hàm này chọn tất cả các hàng từ một bảng.

Tôi cũng có thể sử dụng chức năng này để xóa các hàng khỏi bảng đó.

Chọn Dữ liệu bằng Hàm

Đây là cách chúng tôi thường gọi hàm với SELECT tuyên bố. Điều này cho phép chúng tôi xem dữ liệu hiện tại trong bảng bên dưới.

SELECT * FROM udf_Cats_ITVF();

Kết quả:

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

Vì vậy, có năm hàng.

Hãy xóa Scratchy.

Xóa Hàng qua Hàm

Bây giờ, hãy sử dụng TVF để xóa một hàng.

DELETE FROM udf_Cats_ITVF()
WHERE CatId = 5;   

SELECT * FROM udf_Cats_ITVF();

Kết quả:

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

Vì vậy, tôi đã xóa Scratchy thành công bằng cách sử dụng hàm giá trị bảng nội tuyến.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ có thể chỉ định một biểu thức trong danh sách chọn khi truy vấn con không được giới thiệu với EXISTS

  2. Làm thế nào để xuất trường hình ảnh sang tệp?

  3. 4 cách để kiểm tra các dòng trùng lặp trong SQL Server

  4. Tôi nên sử dụng cột varchar (max) nội tuyến hay lưu trữ nó trong một bảng riêng?

  5. DateDiff để xuất giờ và phút