2016-11-24 5 views
0

SQL Server 2014에 데이터베이스가 있고 연결된 서버가 있습니다. 링크 된 서버에 속하는 저장 프로 시저 내부에서 실행되는 sp를 실행하려고합니다.매개 변수가있는 openquery에서 저장된 프로 시저 실행

Conversion failed when converting the varchar value 'INSERT INTO mytable SELECT * FROM OPENQUERY([mylinkedserver], 'EXEC [linkedserverdb].[dbo].[linkedserversp] ' to data type int.

공지 사항 내가 노력하고있어 : 내가 오류를 받고 있어요 test 42 저장된 proedure를 실행 해요 때

PROCEDURE test (@myint int) 
AS 
     DECLARE @Query VARCHAR(2000) 
     SET @Query = 'INSERT INTO mytable SELECT * FROM OPENQUERY([mylinkedserver], ''EXEC [linkedserverdb].[dbo].[linkedserversp] 
    '+ @myint + ' '')' 

     EXEC(@Query) 

: 나는 저장된 proedure있어 예를 들어

변수 myint를 내 저장된 프로 시저에서 해당 int가 필요한 프로 시저 저장 된 linkedserver로 전달합니다.

제안 사항? 호환되는 문자 유형 예에 @myint 캐스팅해야 'exec...' 당신은 문자열과 함께 INT @myint을 연결하려고

답변

2
PROCEDURE test (@myint int) AS 
DECLARE @Query VARCHAR(2000) 
SET @Query = 'INSERT INTO mytable SELECT * FROM OPENQUERY([mylinkedserver], ''EXEC [linkedserverdb].[dbo].[linkedserversp] 
'+ CAST(@myint AS VARCHAR(10)) + ''')' 

EXEC(@Query) 

VARCHAR.

+0

나는 약간의 타입 캐스팅 튜토리얼을 필요로한다고 생각한다. : P Matt, 괜찮아. – Dimitris

+0

@Dimitris 너는 모두 설정되어 있으면 환영 받겠다. 다른 사람들이 네가 너에게 뭘 줬어? 필요성과 평판 포인트가 부여됩니다. 감사 – Matt