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.