sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra en tabellvärderad funktion i SQL Server

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.


  1. Hur man undslipper enstaka citat, specialtecken i MySQL

  2. ladda dataspinner från sqlite och mysql

  3. Hur man lägger till dagar till ett datum i T-SQL

  4. Schema Migration:Relationell till Star