Sql server MSSQL用户函数、OPENQUERY、动态sql
我很难构建用户函数,我想从openquery中得到一个值, 我需要向这个函数传递一个参数,我正在编辑器中调试它, @catalog是我的传递参数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
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一起使用,我需要用它构建用户函数。