【问题标题】:SQL Server 2008 OPENQUERY inside sp_executesql. Getting error incorrect syntax?sp_executesql 中的 SQL Server 2008 OPENQUERY。得到错误不正确的语法?
【发布时间】:2016-06-24 12:12:23
【问题描述】:

代码:

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 参数。我收到不正确的语法错误。请帮忙...

错误:

消息 102,第 15 级,状态 1,第 1 行
'2487' 附近的语法不正确。

【问题讨论】:

  • 你能打印查询并执行吗?你得到同样的错误吗?

标签: sql-server-2008 openquery


【解决方案1】:

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

所以要么将其定义为数字数据类型,如intdecimal(p,s)

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

否则将初始化更改为

SET @siparisID = N'2487';

【讨论】:

  • 我已经尝试了所有。仍然遇到同样的错误...谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多