SQL Server是一个基于proc的视图,我可以将参数更改为底层的proc

时间:2016-01-29 18:05:31

标签: sql-server

我有一个proc,它接受一些参数并返回一个数据表。我在该proc之上构建了一个视图,因为许多第三方报表系统只允许您连接到视图或表。我的问题是,有没有办法调用视图,并以某种方式将参数从视图传递到它调用的底层proc?或者这有什么选择?

create view MyView_Pizza_Pepsi
    select * from openquery(link, 'set no count on; exec MyProc "Pizza", "Pepsi" ')

所以不是现在我必须使用硬编码的params制作大量硬编码视图,以便将其纳入报告工具。不理想。

1 个答案:

答案 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语句。