Puede modificar una función con valores de tabla (TVF) en SQL Server utilizando ALTER FUNCTION
Sintaxis T-SQL.
Simplemente sigue ALTER FUNCTION
con la nueva definición. Básicamente es como usar CREATE FUNCTION
excepto que reemplazas CREATE
con ALTER
.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats WHERE CatName = @CatName ); GO
Si esta función aún no existiera y la estuviera creando por primera vez, usaría el siguiente código:
CREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats WHERE CatName = @CatName ); GO
Es exactamente igual, excepto que comienza con CREATE
en lugar de ALTER
.
Soltar y recrear
Otra forma de hacerlo es soltar la función y crearla de nuevo:
DROP FUNCTION IF EXISTS udf_CatsByName_ITVF; GO CREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( SELECT CatId, CatName, Phone FROM dbo.Cats WHERE CatName = @CatName ); GO
En este caso, utilicé la sintaxis DIE (Drop If Exists), lo que significa que no obtendré un error si el objeto aún no existe antes de intentar eliminarlo.
TVF en línea frente a TVF de múltiples declaraciones
Los ejemplos en esta página usan una función con valores de tabla en línea. El mismo concepto se aplica a los TVF de declaraciones múltiples.
Consulte Crear una función con valores de tabla en línea y Crear una función con valores de tabla de instrucciones múltiples para obtener ejemplos más detallados de cada una.