Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Промяна на функция с таблично значение в SQL Server

Можете да промените функция с таблично стойност (TVF) в SQL Server с помощта на ALTER FUNCTION Синтаксис на T-SQL.

Просто следвате ALTER FUNCTION с новата дефиниция. По принцип това е като да използвате CREATE FUNCTION освен че замените CREATE с ALTER .

Пример

Ето пример за демонстрация:

ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ВРЪЩА ТАБЛИЦА СЪС SCHEMABINDINGASRETURN ( ИЗБЕРЕТЕ CatId, CatName, Phone ОТ dbo.Cats WHERE CatName =@CatName );GO

Ако тази функция все още не съществуваше и я създавах за първи път, бих използвал следния код:

СЪЗДАВАНЕ НА ФУНКЦИЯ dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ВРЪЩА ТАБЛИЦА СЪС SCHEMABINDINGASRETURN ( ИЗБЕРЕТЕ CatId, CatName, Phone ОТ dbo.Cats WHERE CatName =@CatName );GO

Това е абсолютно същото, с изключение на това, че започва с CREATE вместо ALTER .

Пуснете и създайте отново

Друг начин да го направите е да пуснете функцията и да я създадете отново:

ИЗПУСКАНЕ НА ФУНКЦИЯТА, АКО СЪЩЕСТВУВА udf_CatsByName_ITVF;GOCREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) ) ВРЪЩА ТАБЛИЦА СЪС SCHEMABINDINGASRETURN ( SELECT CatId, CatName> CatId, CatName> CatId, CatName. 

В този случай използвах синтаксиса на DIE (Drop If Exists), което означава, че няма да получа грешка, ако обектът вече не съществува, преди да се опитам да го пусна.

Вградени TVFs срещу TVF с множество изявления

Примерите на тази страница използват вградена функция със стойност на таблица. Същата концепция важи за TVF с множество изявления.

Вижте Създаване на вградена функция с таблична стойност и Създаване на функция с таблична стойност с множество изрази за по-подробни примери за всяка една.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да напиша UPDATE SQL с псевдоним на таблица в SQL Server 2008?

  2. CAST() срещу TRY_CAST() в SQL Server:Каква е разликата?

  3. SQL Server – Дисектирайте вътрешните елементи на sp_spaceused

  4. Използване на RegEx в SQL Server

  5. Как да преименувате всички ограничения по подразбиране според стандартите за именуване или конвенцията за именуване в SQL Server - SQL Server / TSQL урок, част 93