【发布时间】:2019-09-16 11:55:25
【问题描述】:
为什么下面的查询不起作用?它给了我错误:'+'附近的语法不正确。
SELECT *
INTO #tmpTable
FROM OPENQUERY("127.0.0.1", 'EXEC [DB].dbo.SP_inventory' + @StoreId + ',' + @StartDate ',' + @EndDate)
我应该如何传递参数 @StoreId @StartDate 和 @EndDate 以使其正常工作?谢谢。
【问题讨论】:
-
OPENQUERY不接受表达式,只接受字符串常量。您可以“干净地”将参数传递给远程存储过程(即不构建字符串并涉及类型转换),但是您应该使用EXECUTE ... AT并使用?语法作为参数。 -
刚刚意识到这是相关的:Is the sp_ prefix still a no-no?
标签: sql-server stored-procedures