Logic Apps SQL连接器Row Id来源及本地SQL存储过程返回问题咨询
关于On-Premise Data Gateway执行存储过程无Row Id的问题解答
这绝对不是本地SQL的限制哦!问题根源出在你的存储过程本身,和SQL数据库或者On-Premise Data Gateway都没关系。
具体来说:
- 本地SQL数据库(比如SQL Server)不会自动给存储过程返回的结果集添加Row Id,结果里包含哪些字段完全由你编写的存储过程查询语句决定。举个例子,如果你存储过程里写的是
SELECT SOPNUMBE, SYNCSTATUS3, Tracking_Number, OBJECTKEY, ScribeModifiedBy, ScribeModifiedDate FROM 你的表名,那返回的结果自然就没有Row Id; - On-Premise Data Gateway只是个“传声筒”,它负责把执行存储过程的请求发送到本地SQL,再把返回的结果原封不动地带回来,根本不会修改结果集的结构。
给你两个实用的解决办法:
- 如果你的表本身有主键或者专门的行标识字段(比如
ID、RowId这类),直接在存储过程的SELECT语句里把这个字段加进去就行,比如SELECT 你的行标识字段名, SOPNUMBE, SYNCSTATUS3, ... FROM 你的表名; - 如果表没有专门的行标识字段,可以用SQL的
ROW_NUMBER()函数生成临时行号,比如:
SELECT ROW_NUMBER() OVER (ORDER BY ScribeModifiedDate) AS RowId, SOPNUMBE, SYNCSTATUS3, Tracking_Number, OBJECTKEY, ScribeModifiedBy, ScribeModifiedDate FROM 你的表名
这样返回的结果集里就会多一个自增的RowId列了。
内容的提问来源于stack exchange,提问作者Chris76786777
相关产品推荐
相关产品推荐

