我有一个proc,它接受一些参数并返回一个数据表。我在该proc之上构建了一个视图,因为许多第三方报表系统只允许您连接到视图或表。我的问题是,有没有办法调用视图,并以某种方式将参数从视图传递到它调用的底层proc?或者这有什么选择?
create view MyView_Pizza_Pepsi
select * from openquery(link, 'set no count on; exec MyProc "Pizza", "Pepsi" ')
所以不是现在我必须使用硬编码的params制作大量硬编码视图,以便将其纳入报告工具。不理想。
答案 0 :(得分:0)
AFAIK,不,您无法将参数传递给视图。另一种方法是将所有数据和过滤条件都添加到视图本身,如
create view MyView_Pizza_Pepsi
select * from openquery(link, 'set no count on; exec MyProc')
Where col1 = 'Pizza'
and col2 = 'Pepsi';
嗯,你需要相应地改变你的程序。现在,您可以从应用程序传递这些参数并获取过滤后的数据。
我会将所有openquery调用一起移除并将其转换为普通SELECT
语句。