ALTER FUNCTIONを使用して、SQL Serverのテーブル値関数(TVF)を変更できます。 T-SQL構文。
ALTER FUNCTIONに従うだけです 新しい定義で。基本的には、CREATE FUNCTIONを使用するようなものです。 CREATEを置き換える場合を除きます ALTERを使用 。
例
デモンストレーションの例を次に示します。
ALTER FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) )
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN (
SELECT
CatId,
CatName,
Phone
FROM dbo.Cats
WHERE CatName = @CatName
);
GO
この関数がまだ存在せず、初めて作成する場合は、次のコードを使用します。
CREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) )
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN (
SELECT
CatId,
CatName,
Phone
FROM dbo.Cats
WHERE CatName = @CatName
);
GO
CREATEで始まることを除けば、まったく同じです。 ALTERの代わりに 。
ドロップして再作成
これを行う別の方法は、関数を削除して再作成することです。
DROP FUNCTION IF EXISTS udf_CatsByName_ITVF;
GO
CREATE FUNCTION dbo.udf_CatsByName_ITVF( @CatName varchar(70) )
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN (
SELECT
CatId,
CatName,
Phone
FROM dbo.Cats
WHERE CatName = @CatName
);
GO
この場合、DIE構文(Drop If Exists)を使用しました。これは、オブジェクトをドロップする前にオブジェクトがまだ存在していなくてもエラーが発生しないことを意味します。
インラインTVFとマルチステートメントTVF
このページの例では、インラインのテーブル値関数を使用しています。同じ概念がマルチステートメントTVFにも当てはまります。
それぞれの詳細な例については、インラインテーブル値関数の作成とマルチステートメントテーブル値関数の作成を参照してください。