SQL Server ユーザー定義関数(1) インラインテーブル値関数

ユーザー定義関数 その1

— =============================================
— インラインテーブル値関数
— RETURN句のカッコ内にはSELECT文を1つだけ書ける
— 注意:SELECT * を使うと,その後テーブルに追加された列の情報は返らない.
— (ALTERで関数を定義し直せば大丈夫だが,*は使わない方がいいだろう.)
— =============================================

CREATE FUNCTION fn_Test1
(   
    @a1 int
)
RETURNS TABLE
AS
RETURN
(
    SELECT b1, b2
        FROM Table1
        WHERE ID = @a1
)
GO


使い方

SELECT * FROM fn_Test1(1) –カッコの中にパラメーター値を入れる

次のようにUPDATE文を使うと,元のTable1の内容が書き換わる.
間違ってそのままテーブル変数や一時テーブルのように使うと痛い目を見る.

UPDATE fn_Test1(1) SET b1 = 1

参考:
ユーザー定義関数 (MSDN)