2016-06-24 1 views
0

Код:OPENQUERY SQL Server 2008 внутри sp_executesql. Получение ошибочного синтаксиса ошибки?

DECLARE @resultLast int, @siparisID nvarchar(21) 
SET @siparisID = 2487 

EXEC sp_executesql N'select * from OPENQUERY([MYSERVER],''Select ([MYDB].[dbo].[FN_SIPARIS_YUKLEME_TUTARI](@siparisID , 20 , 
        [MYDB].[dbo].[FN_DATE_CONVERT_TO_DATE](GETDATE()) , ''''BUY''''))'')', @siparisID, 
       N'@resultLast int output', @resultLast output; 

Я пытаюсь получить данные из связанной функции сервера. Также мне нужно отправить параметр @siparisID. Я получаю неправильную синтаксическую ошибку. Помогите пожалуйста ...

Ошибка:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '2487'.

+0

Вы можете напечатать запрос и выполнить его? Вы получаете ту же ошибку? – HoneyBadger

ответ

0

Вы определили @siparisID nvarchar(21) - но вы устанавливаете его в числовой тип данных.

Так либо определить его как числовой тип данных, как int или decimal(p,s):

DECLARE @siparisID INT 
DECLARE @siparisID BIGINT 
DECLARE @siparisID DECIMAL(16,2) 

либо изменить инициализацию к

SET @siparisID = N'2487'; 
+0

Я пробовал all.Still получить такую ​​же ошибку ... Спасибо в любом случае. –