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

Thay đổi một hàm có giá trị bảng trong SQL Server

Bạn có thể thay đổi một hàm có giá trị bảng (TVF) trong SQL Server bằng cách sử dụng ALTER FUNCTION Cú pháp T-SQL.

Bạn chỉ cần làm theo ALTER FUNCTION với định nghĩa mới. Về cơ bản, nó giống như sử dụng CREATE FUNCTION ngoại trừ bạn thay thế CREATE với ALTER .

Ví dụ

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

 CHỨC NĂNG ALTER dbo.udf_CatsByName_ITVF (@CatName varchar (70)) BẢNG QUAY LẠI VỚI SCHEMABINDINGASRETURN (CHỌN CatId, CatName, Phone FROM dbo.Cats WHERE CatName =@CatName); ĐI 

Nếu chức năng này chưa tồn tại và tôi đang tạo nó lần đầu tiên, tôi sẽ sử dụng mã sau:

 TẠO CHỨC NĂNG dbo.udf_CatsByName_ITVF (@CatName varchar (70)) BẢNG TRỞ LẠI VỚI SCHEMABINDINGASRETURN (CHỌN CatId, CatName, Phone FROM dbo.Cats WHERE CatName =@CatName); ĐI 

Nó giống hệt nhau, ngoại trừ nó bắt đầu bằng CREATE thay vì ALTER .

Thả và tạo lại

Một cách khác để làm điều đó là bỏ chức năng và tạo lại:

 CHỨC NĂNG DROP NẾU TỒN TẠI udf_CatsByName_ITVF; CHỨC NĂNG GOCREATE dbo.udf_CatsByName_ITVF (@CatName varchar (70)) BẢNG TRỞ LẠI VỚI SCHEMABINDINGASRETURN (CHỌN CatId, CatName, Phone FROM dboame.Cats) 

Trong trường hợp này, tôi đã sử dụng cú pháp DIE (Drop If Exists), có nghĩa là tôi sẽ không gặp lỗi nếu đối tượng chưa tồn tại trước khi cố gắng loại bỏ nó.

TVF nội tuyến so với TVF đa câu lệnh

Các ví dụ trên trang này sử dụng một hàm giá trị bảng nội tuyến. Khái niệm tương tự cũng áp dụng cho TVF nhiều câu lệnh.

Hãy xem Tạo một hàm định giá trong bảng nội tuyến và tạo một hàm định giá bảng cho nhiều bảng sao kê để biết thêm các ví dụ chi tiết về từng hàm.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách gửi kết quả truy vấn qua email trong SQL Server (T-SQL)

  2. Đồng thời lạc quan:IsConcurrencyToken và RowVersion

  3. SqlServer:Đăng nhập không thành công cho người dùng

  4. Cách nhanh nhất để liệt kê tất cả cơ sở dữ liệu trong SQL Server bằng T-SQL

  5. Có phải mọi người đều đang di chuyển đến đám mây?