1

안녕하세요, 다음 함수가 작동하는 데 문제가 있습니다.함수에서 확장 프로 시저를 호출하는 방법

CREATE FUNCTION test (@nt_group VARCHAR(128)) 
RETURNS @nt_usr TABLE (
     [name] [nchar](128) NULL 
    , [type] [char](8) NULL 
    , [privilege] [char](9) NULL 
    , [mapped login name] [nchar](128) NULL 
    , [permission path] [nchar](128) NULL 
    ) 
AS BEGIN 

    INSERT INTO @nt_usr 
    EXEC master.dbo.xp_logininfo 'DOMAIN\USER', @nt_group 
    RETURN 
    END 

지금까지 내가 메신저 다음과 같은 오류

메스 443, 수준 16, 상태 14

을 받고, 확장 저장 프로 시저를 호출 할 수 있어야합니다 알고 그것을 할 수 xp_logininfo가 매개 변수에 따라 다른 결과 세트를 리턴 할 수 있습니까? openquery를 사용할 때 SET FMTONLY OFF를 설정하여이 문제를 극복 할 수 있습니다. 내 문제에 대해 비슷한 해결 방법이 있는지 아는 사람 있습니까?

답변

1

이 XP에서 데이터를 반환 할 수 없습니다. 테이블을로드하는 경우에도.

는 기본적으로, UDFS에서 XPS 내가

가 확장 된 기능에서 확장 저장 프로 시저를 호출 CREATE FUNCTION

에서 저장 프로 시저

를 사용하는 거라고 ... 비 스타터입니다 저장 프로 시저에서 이 함수 내에서 호출되면 클라이언트에 결과 집합을 반환 할 수 없습니다. 결과 집합을 클라이언트에 반환하는 모든 ODS API는 FAIL을 반환합니다. 확장 저장 프로 시저 은 SQL Server 인스턴스에 다시 연결할 수 있습니다. 그러나 확장 된 저장 프로 시저를 호출 한 함수와 동일한 트랜잭션에 을 결합해서는 안됩니다. 일괄 또는 저장 프로 시저에서 호출과 유사

는 저장 확장 절차는 SQL Server가 실행되는 Windows 보안 계정의 컨텍스트에서 실행됩니다. 저장된 절차의 소유자는 사용자에게 사용자에게 EXECUTE 권한을 부여 할 때이를 고려해야합니다.

+0

오, 내가 그것을 읽을 때 나는 그것을 보지 못했습니다. 보기에 교차 적용을 사용할 수 있도록 함수를 사용하고 싶었습니다. 나는 다른 일을하는 방법을 찾아야한다고 생각해. 감사! –

관련 문제