Можете да промените функция с таблично стойност (TVF) в SQL Server с помощта на ALTER FUNCTION
Синтаксис на T-SQL.
Просто следвате ALTER FUNCTION
с новата дефиниция. По принцип това е като да използвате CREATE FUNCTION
освен че замените CREATE
с ALTER
.
Пример
Ето пример за демонстрация:
ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ВРЪЩА ТАБЛИЦА СЪС SCHEMABINDINGASRETURN ( ИЗБЕРЕТЕ CatId, CatName, Phone ОТ dbo.Cats WHERE CatName =@CatName );GO
Ако тази функция все още не съществуваше и я създавах за първи път, бих използвал следния код:
СЪЗДАВАНЕ НА ФУНКЦИЯ dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ВРЪЩА ТАБЛИЦА СЪС SCHEMABINDINGASRETURN ( ИЗБЕРЕТЕ CatId, CatName, Phone ОТ dbo.Cats WHERE CatName =@CatName );GO
Това е абсолютно същото, с изключение на това, че започва с CREATE
вместо ALTER
.
Пуснете и създайте отново
Друг начин да го направите е да пуснете функцията и да я създадете отново:
ИЗПУСКАНЕ НА ФУНКЦИЯТА, АКО СЪЩЕСТВУВА udf_CatsByName_ITVF;GOCREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ВРЪЩА ТАБЛИЦА СЪС SCHEMABINDINGASRETURN ( SELECT CatId, CatName> CatId, CatName> CatId, CatName.В този случай използвах синтаксиса на DIE (Drop If Exists), което означава, че няма да получа грешка, ако обектът вече не съществува, преди да се опитам да го пусна.
Вградени TVFs срещу TVF с множество изявления
Примерите на тази страница използват вградена функция със стойност на таблица. Същата концепция важи за TVF с множество изявления.
Вижте Създаване на вградена функция с таблична стойност и Създаване на функция с таблична стойност с множество изрази за по-подробни примери за всяка една.