Funkcję z wartościami przechowywanymi w tabeli (TVF) w programie SQL Server można zmienić za pomocą ALTER FUNCTION
Składnia T-SQL.
Po prostu postępuj zgodnie z ALTER FUNCTION
z nową definicją. Zasadniczo przypomina to użycie CREATE FUNCTION
z wyjątkiem zastąpienia CREATE
z ALTER
.
Przykład
Oto przykład do zademonstrowania:
ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ZWRACA TABELĘ Z SCHEMABINDINGASRETURN ( SELECT CatId, CatName, Phone FROM dbo. Cats WHERE CatName =@ CatName );GO
Gdyby ta funkcja jeszcze nie istniała, a tworzyłem ją po raz pierwszy, użyłbym następującego kodu:
CREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ZWRACA TABELĘ Z SCHEMABINDINGASRETURN ( SELECT CatId, CatName, Phone FROM dbo. Cats WHERE CatName =@CatName );GO
Jest dokładnie tak samo, z tym wyjątkiem, że zaczyna się od CREATE
zamiast ALTER
.
Upuść i utwórz ponownie
Innym sposobem, aby to zrobić, jest porzucenie funkcji i ponowne jej utworzenie:
DROP FUNCTION IF EXISTS udf_CatsByName_ITVF;GOCREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) TABELA ZWRACA Z SCHEMATEMASRETURN ( SELECT CatId, CatName, CatName. PhoneCats => dboW tym przypadku użyłem składni DIE (Drop If Exists), co oznacza, że nie otrzymam błędu, jeśli obiekt nie istnieje przed próbą jego usunięcia.
Inline TVF a wielowyrazowe TVF
W przykładach na tej stronie użyto wbudowanej funkcji z wartościami przechowywanymi w tabeli. Ta sama koncepcja dotyczy wielowyrazowych programów TVF.
Zobacz Tworzenie wbudowanej funkcji z wartościami tabelarycznymi i Tworzenie wielowyrazowej funkcji z wartościami tabelarycznymi, aby uzyskać bardziej szczegółowe przykłady każdej z nich.