Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zmień funkcję o wartościach przechowywanych w tabeli w SQL Server

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 => dbo 

W 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uszkodzony plik eksportu SQL Server BCP?

  2. Jak używać wszystkich operatorów logicznych w SQL Server — samouczek SQL Server / TSQL, część 126

  3. Jak uzyskać kolejną wartość sekwencji SQL Server w Entity Framework?

  4. Przepływ warunkowy programu SQL Server

  5. jak znaleźć rozmiar wiersza w tabeli