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にも当てはまります。
それぞれの詳細な例については、インラインテーブル値関数の作成とマルチステートメントテーブル値関数の作成を参照してください。