2016-11-24 7 views
0

SQL Server 2014にデータベースがあり、リンクサーバーがあります。 リンクされたサーバーに属しているストアドプロシージャ の中で実行されるspを実行したい。パラメータ付きのオープンクエリでストアドプロシージャを実行

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 はあなたにマットをありがとう、それはあなたがすべて設定されている場合、あなたは歓迎されている – Dimitris

+0

@Dimitris大丈夫です他の人が何をあなたを得ている知っているように、答えをupvoteと受け入れてください必要性と評判のポイントが与えられます。ありがとう – Matt

関連する問題