从SQL视图中执行SQL存储过程

11

我发现在Excel中调用存储过程并不像应该那样容易,但是调用视图或直接表格却非常容易。那么,我怎样才能创建一个可以调用无参数存储过程的视图呢?

我知道我不能将任何值传递给这个视图,也不需要或者想要传递。只是想把一个存储过程封装在视图中。

类似于select exec MyStoredProc()之类的语句就很好。


http://sqlblogcasts.com/blogs/madhivanan/archive/2007/11/26/select-columns-from-exec-procedure-name-is-this-possible.aspx - Freelancer
2个回答

11
如果我没记错(我手边没有复印件),假设你正在使用T-SQL,那么应该可以从一个用户定义的表函数中选择*(这些函数与存储过程在大多数情况下是相同的),它返回一个表变量。

这是一个很好的解决方案,避免了Russ担心的安全问题。 - wcm
通常我会选择这个选项,但是所涉及的存储过程是几个嵌套存储过程中的顶层,将它们全部转换为函数在这种特定情况下并不现实。在这种情况下,我有几个嵌套的存储过程,执行了几个xpath查询。 - Russ
希望他能注意到 :) - annakata

1

你应该能够在一个虚拟表上放置一个触发器,并在触发器内调用存储过程。

这绝对是一种hack方法,你需要真正锁定表和存储过程的权限。


但是你能否返回触发器的结果呢(假设这是Russ想要的)? - wcm
以下是我需要使用视图的一个场景。在LINQ to Entities中,将存储过程的结果集映射到自定义实体的过程需要手动更新.edmx文件,这并不好,因为每次从数据库更新模型时更改都会丢失。因此,将结果集映射到视图会很好。 - Abe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接