Du kan ændre en tabelværdi-funktion (TVF) i SQL Server ved hjælp af ALTER FUNCTION
T-SQL-syntaks.
Du følger blot ALTER FUNCTION
med den nye definition. Grundlæggende er det som at bruge CREATE FUNCTION
bortset fra at du erstatter CREATE
med ALTER
.
Eksempel
Her er et eksempel til demonstration:
ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURTABEL MED SCHEMABINDINGASRETURN (VÆLG CatId, CatName, Phone FRA dbo.Cats WHERE CatName =@CatName );GO
Hvis denne funktion ikke allerede eksisterede, og jeg oprettede den for første gang, ville jeg bruge følgende kode:
OPRET FUNKTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURTABEL MED SCHEMABINDINGASRETURN (VÆLG CatId, CatName, Phone FRA dbo.Cats WHERE CatName =@CatName );GO
Det er nøjagtigt det samme, bortset fra at det begynder med CREATE
i stedet for ALTER
.
Slip og genskab
En anden måde at gøre det på er at droppe funktionen og oprette den igen:
DROP FUNCTION HVIS FINDER udf_CatsByName_ITVF;GOCREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) RETURNERER TABEL MED SCHEMABINDINGASRETURN ( SELECT CatId, CatName, Phone FROM CatName.>);I dette tilfælde brugte jeg DIE-syntaksen (Drop If Exists), hvilket betyder, at jeg ikke får en fejlmeddelelse, hvis objektet ikke allerede eksisterer, før jeg forsøgte at slippe det.
Inline TVF'er vs Multi-Statement TVF'er
Eksemplerne på denne side bruger en inline-tabel-vurderet funktion. Det samme koncept gælder for multi-statement TVF'er.
Se Opret en integreret tabel-værdi-funktion og Opret en multi-sætning tabel-værdi-funktion for mere detaljerede eksempler på hver enkelt.