Du kan ändra en tabellvärderad funktion (TVF) i SQL Server med ALTER FUNCTION
T-SQL-syntax.
Du följer helt enkelt ALTER FUNCTION
med den nya definitionen. I grund och botten är det som att använda CREATE FUNCTION
förutom att du ersätter CREATE
med ALTER
.
Exempel
Här är ett exempel att visa:
ÄNDRA FUNKTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNERAR TABELL MED SCHEMABINDINGASRETURN (VÄLJ CatId, CatName, Phone FRÅN dbo.Cats WHERE CatName =@CatName );GO
Om den här funktionen inte redan fanns och jag skapade den för första gången, skulle jag använda följande kod:
SKAPA FUNKTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNERAR TABELL MED SCHEMABINDINGASRETURN (VÄLJ CatId, CatName, Phone FRÅN dbo.Cats WHERE CatName =@CatName );GO
Det är exakt samma, förutom att det börjar med CREATE
istället för ALTER
.
Släpp och återskapa
Ett annat sätt att göra det är att släppa funktionen och skapa den igen:
SLÄPP FUNKTION OM FINNS udf_CatsByName_ITVF;GOCREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNERAR TABELL MED SCHEMABINDINGASRETURN (VÄLJ CatId, CatName, Phone WHERE CatName>);I det här fallet använde jag DIE-syntaxen (Drop If Exists), vilket betyder att jag inte får ett felmeddelande om objektet inte redan finns innan jag försöker släppa det.
Inline TVFs vs Multi-Statement TVFs
Exemplen på den här sidan använder en inline-tabellvärderad funktion. Samma koncept gäller för TVF:er med flera påståenden.
Se Skapa en integrerad tabellvärderad funktion och Skapa en tabellvärderad funktion med flera uttalanden för mer detaljerade exempel på var och en.