Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MSSQL用户函数、OPENQUERY、动态sql_Sql Server_Function_Select_Openquery - Fatal编程技术网

Sql server MSSQL用户函数、OPENQUERY、动态sql

Sql server MSSQL用户函数、OPENQUERY、动态sql,sql-server,function,select,openquery,Sql Server,Function,Select,Openquery,我很难构建用户函数,我想从openquery中得到一个值, 我需要向这个函数传递一个参数,我正在编辑器中调试它, @catalog是我的传递参数 declare @val decimal(18, 3), @catalog varchar(50); set @catalog = '08553101'; select @val = (STPRS/PEINH) from openquery([NEWDB], 'select STPRS, PEINH from DATA.CATALOGS where

我很难构建用户函数,我想从openquery中得到一个值, 我需要向这个函数传递一个参数,我正在编辑器中调试它, @catalog是我的传递参数

declare @val decimal(18, 3), @catalog varchar(50);
set @catalog = '08553101';

select @val = (STPRS/PEINH) from openquery([NEWDB], 'select STPRS, PEINH from DATA.CATALOGS where CATALOG = ''' + @catalog + '''  ')
return @val;
但获取错误“SQL Server数据库错误:“+”附近的语法不正确。” 不确定如何构建Openquery。
请给我一些建议。提前谢谢。

我将遵循Erlang Sommarskog在其文章第6.2节中的建议
. 在提供大量信息和重要细节时,他毫不费力,否则很难找到或弄清楚。

OPENQUERY()
不支持表达式作为输入。根据您的需求,您需要使整个查询动态化。动态SQL没有帮助,因为exec sp_executesql不能与return一起使用,我需要用它构建用户函数。