1

두 가지 방법으로 동일한 선택을 실행하려고합니다. 테이블 반환 함수를 통해 먼저SQL Server 저장 프로 시저 캐시

프로 시저를 저장 실행하여, openquery를 통해 절차를

SELECT * FROM dbo.DF_PRODUCTS(); 

두 번째 저장 사용 문제는 내가 다양한 결과를 얻을 그리고 내가 생각이다

SELECT * 
FROM openquery([servername], 
       'SET FMTONLY OFF exec DatabaseName.dbo.My_StoredProcedure') 

문제가 내장 프로 시저 캐시에 있습니다. 아무도 이것으로 나를 도울 수 있습니까?

+5

저장된 proc 코드를 게시 할 수 있습니까? – Limey

+1

만약 당신의 우려는 SP 캐시 다음 u는 DBCC FREEPROCCACHE를 사용하여 그것을 삭제하거나 SQL 서버 캐시가 일시적으로 닫히는 UR SSSMS 다음 n을 다시 엽니 다. @ Limey 게시물에 의해 제안 된대로 SP에 코드 – praveen

답변

0

동일한 코드를 실행하면 다른 결과가 발생하고 OPENQUERY 명령을 통해 '유일한'(감지 된) 차이가 발생한다는 것은 온 전성 검사를 수행하고 OPENQUERY ([서버 이름 ] ...)은 첫 번째 쿼리와 동일한 서버에 대해 확실히 실행됩니다.

가장 자주 발생하는 시나리오는 연결된 서버가 실행중인 서버와 로컬 서버가 다르다는 것입니다. 로컬 데이터베이스 대 개발/테스트/스테이징/라이브 데이터베이스를 사용하고 있습니다.