2
내 기능은 다음과 같습니다 : 함수가 아니었다에 나는 테이블 변수에 대한 작업을 생각T-SQL 함수에서 테이블 변수에 대해 INSERT EXEC를 실행할 수없는 이유는 무엇입니까?
Invalid use of a side-effecting operator 'INSERT EXEC' within a function.
:
CREATE FUNCTION fn_FileSys_DirExists(@dirName AS nvarchar(260))
RETURNS bit
AS
BEGIN
DECLARE @dirExists int
DECLARE @fileResults TABLE
(
file_exists int,
file_is_a_directory int,
parent_directory_exists int
)
INSERT @fileResults (file_exists, file_is_a_directory, parent_directory_exists)
EXEC master.dbo.xp_fileexist @dirName
SELECT @dirExists = file_is_a_directory FROM @fileResults
RETURN @dirExists
END
나는 시도하고 위의 SQL을 실행하면, 나는 다음과 같은 오류가 발생합니다 수술을 고려한 부작용?
함수 내부에서 저장 프로 시저를 실행할 수 있는지 확신하지 못합니다. 내가 맞다면 그것은 삽입물이 아니며'exec' 그 자체입니다. –
@ ZoharPeled 네, 슬프게도 당신이 옳을 수도 있습니다. – ProfK
글쎄, 내가 옳다는 것이 밝혀졌다. [SO 게시물이 제안한대로] (http://stackoverflow.com/questions/6344880/execute-stored-procedure-from-a-function) –