-
SQL Server - 兼容级别2000
-
Person
表 - PersonId,PersonName等..(~1200条记录)
两个用户功能 - GetPersonAddress(@PersonId)
, GetPaymentAddress(@PersonId)
这两个函数在带有Street,City等的表中返回数据...( PersonId
的返回表中有一条记录)
我必须通过传入person id来创建一个通过这两个用户函数连接person表的视图 .
限制:
-
SQL Server 2000中的函数不支持Cross Apply
-
视图中不支持游标,临时表和临时变量,因此我可以循环访问人员表并调用函数 .
有人可以帮忙吗?
2 回答
您可以创建函数
GetPeopleAddresses()
和GetPaymentsAddresses()
,将PersonId作为字段返回,然后您可以在JOIN
中使用它们:当然,您的函数必须只返回唯一的记录
由于您列出的限制,我担心您无法使用SQL Server 2000中的视图执行此操作 . 注释中建议的下一个最佳选项是存储过程,该过程返回将返回视图的行 .
如果需要在另一个查询中使用该过程的结果,则可以在过程表中插入过程返回的值 . 不漂亮,你必须进行两次DB调用(一个用于创建/填充临时表,另一个用于使用它),但它可以工作 . 例如: