Sql server 对于使用SQL存储过程或函数的简单查询,需要一个alernative to While循环
我有一个简单的父/子记录集,当前我循环使用该记录集,并在客户端上显示代码,出于性能原因,我希望将其移动到某个过程 这在classic.asp网页中用于创建动态html表 当前逻辑使用嵌套的do而不是EOF来在我遍历主记录集时将子记录拉入并连接到一个列中 主记录集根据存储过程:伪代码提取父资产数据 RS1 从AssetID=AssetID的资产中选择AssetID、字段1、字段2、字段3 当我显示这个输出时,我调用这个循环,向原始结果集中添加一列,其中包含一个proc中的串联值,并显示行的AssetID参数Sql server 对于使用SQL存储过程或函数的简单查询,需要一个alernative to While循环,sql-server,while-loop,functional-programming,nested-loops,table-valued-parameters,Sql Server,While Loop,Functional Programming,Nested Loops,Table Valued Parameters,我有一个简单的父/子记录集,当前我循环使用该记录集,并在客户端上显示代码,出于性能原因,我希望将其移动到某个过程 这在classic.asp网页中用于创建动态html表 当前逻辑使用嵌套的do而不是EOF来在我遍历主记录集时将子记录拉入并连接到一个列中 主记录集根据存储过程:伪代码提取父资产数据 RS1 从AssetID=AssetID的资产中选择AssetID、字段1、字段2、字段3 当我显示这个输出时,我调用这个循环,向原始结果集中添加一列,其中包含一个proc中的串联值,并显示行的Asse
While not rs1.eof
sSQL = "EXEC GetAuditDescriptions @AssetID ='" & RS1("AssetID")& "'"
set AuditRs = conn.execute(sSQL)
if not auditRS.EOF then
auditRS.MoveFirst
while not(auditRS.EOF)
auditDescrs = auditDescrs & auditRS.Fields("audit_text").Value & ", "
auditRS.MoveNext
wend
end if
auditRS.Close
这将创建一个列,其中包含GetAuditDescriptions中单个字段的串联输出
最终输出为
AssetID, Field1,Field2,Field3,[auditDescrs1, auditDescrs2, auditDescrs3]
现在这种情况发生在客户机上,但是我想创建一个函数,从我的主过程中调用它,以在后端的原始查询中作为列返回这个连接的输出
我听说存储过程中的循环不是一个好主意,我想知道是否可以创建一个基于表的函数,从我的过程中调用以提取这些值,但我需要它们作为每行的串联返回,作为一个单行
任何帮助都将不胜感激。我更喜欢XML路径-。这非常感谢。我基于这个解决方案创建了一个基于表的函数,并得到了我所需要的。现在,我尝试从主过程中调用此函数,以添加一个包含串联结果的列。该函数需要一个参数@assetID,但我使用functionaudit.assetID as NewColumn中的select field1作为文本调用它-其中audit.assetID是我进程中的select字段。Intellisense显示没有问题,但proc不会编译。如果我定义@assetID参数和语法newfunction@assetID它编译。但这也不好。有什么想法吗?