SQL sp_executesql 内的 Server 2008 OPENQUERY。获取错误不正确的语法?

SQL Server 2008 OPENQUERY inside sp_executesql. Getting error incorrect syntax?

代码:

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'.

您已定义 @siparisID nvarchar(21) - 但您将其设置为数字数据类型。

所以或者将其定义为数字数据类型,如intdecimal(p,s):

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

否则将初始化更改为

SET @siparisID = N'2487';