CREATE FUNCTION [dbo].[FN_GET_MEM_TABLE1]
(
@id NVARCHAR(100)
)
RETURNS @returnTable TABLE
(
MEM_ID NVARCHAR(100),
MEM_NM NVARCHAR(1000)
)
AS
BEGIN
DECLARE
@SQLStmt VARCHAR(1000)
,@PARA VARCHAR(80)
SET @PARA = 'MEM_NM'
SET @SQLStmt = 'SELECT MEM_ID,' + @PARA + ' FROM USER_TABLE'
INSERT INTO @returnTable ( MEM_ID, MEM_NM )
EXEC (@SQLStmt)
RETURN
END
GO
위처럼 쿼리를 담아서 EXEC를 이용하여 테이블 반환 함수를 만들려고 하는데
함수 내에서 파생 작업을 생성하는 연산자 'INSERT EXEC'을(를) 잘못 사용했습니다.
라는 에러가 발생하네요.
다중문 테이블 반환 함수말고 인라인 테이블 반환 함수를 써도 마찬가지네요.
CREATE FUNCTION [dbo].[FN_GET_MEM_TABLE2]
(
@id NVARCHAR(100)
)
RETURNS TABLE
AS
RETURN (
EXEC(SELECT * FROM USER_TABLE)
)
GO
MSSQL 함수안에서 EXEC로 쿼리를 실행할 수 있는 방법이 있을까요?
Comment 1
-
이리
2017.06.28 17:03
http://www.dbguide.net/dbqna.db?cmd=view&boardConfigUid=30&boardUid=146609
참고해보세요..