我正在使用内部部署数据网关执行存储过程。返回的数据如下(混淆):
{
"OutputParameters": {},
"ResultSets": {
"Table1": [
{
"SOPNUMBE": "string",
"SYNCSTATUS3": "M",
"Tracking_Number": "string",
"OBJECTKEY": "2|string",
"ScribeModifiedBy": "UPS",
"ScribeModifiedDate": "2018-03-19T15:59:30.007"
},
{
...
}
]
}
}
那里没有任何东西对我说'#34;这是Row Id"。
这是使用本地SQL的限制吗?
为了提供一些额外的信息,我的存储过程从dbo.SCRIBESHADOW和另一个表中获取一些信息。我打算更新dbo.SCRIBESHADOW。以下是SSMS的截图。
以下是一些示例行。我会为Row ID更新其中一行?
答案 0 :(得分:2)
存储过程结果没有任何行ID,因为SP结果不是表行,即使SP仅由一个SELECT组成。这是因为SP结果是它自己的表。
所以,不,这不是任何限制,它只是存储过程的工作方式。如果需要任何源表的RowID,则需要将其添加到结果中。
要继续,如果需要根据存储过程结果更新记录,则需要从SP返回要更新的表的主键值。该值是Update行Action中的Row id。
但是,如果您使用存储过程来检索数据,那么您实际上也应该使用存储过程来更新数据。