SQL 2008 で関数を正常に作成しました。
ALTER FUNCTION [dbo].Func_raw_data_xref (@ColName AS NVARCHAR(255))
RETURNS @VVSrcCDs TABLE (
VV_SRC_CD NVARCHAR(255) NULL,
VV_CD NVARCHAR(255) NULL,
VV_SRC_CD_DESC NVARCHAR(255) NULL,
VV_DSC NVARCHAR(255) NULL )
AS
BEGIN
DECLARE @vv_SRC_CD NVARCHAR(255),
@vv_CD NVARCHAR(255),
@vv_SRC_CD_DESC NVARCHAR(255),
@vv_DSC NVARCHAR(255);
SELECT @vv_SRC_CD = A.VV_SRC_CD,
@vv_CD = A.VV_CD,
@vv_SRC_CD_DESC = A.VV_SRC_CD_DESC,
@vv_DSC = A.VV_DSC
FROM DBO.VALUES A
JOIN VVLOOKUP B
ON A.VV_SRC_CD = b.VV_SRC_CD
WHERE B.[CLIENT COLUMN NAME] = @ColName
RETURN;
END
問題は、関数を呼び出すときです。
SELECT *
FROM DBO.Func_raw_data_xref('_CD');
結果が出ません。私が得るのは、関数で参照される列ですが、データはありません。関数から select ステートメントをコピーし、@ColName の有効なパラメーターを指定して実行すると、結果が得られます。