【问题标题】:Execute a SQL stored proc from a SQL view从 SQL 视图执行 SQL 存储过程
【发布时间】:2010-09-25 21:15:01
【问题描述】:

我发现在 Excel 中调用存储过程并不像应有的那么容易,但是调用视图或直接表非常容易。那么,如何创建一个视图来调用没有参数的存储过程?

我知道我无法将任何值传递到视图中,我不需要或不想,只想将存储过程包装在视图中。

select exec MyStoredProc() 之类的东西会很棒。

【问题讨论】:

标签: sql-server stored-procedures view


【解决方案1】:

iirc(我手头没有副本)如果您碰巧在 T-SQL 中,则应该可以从 用户定义的表函数 中选择 *(这是大多数意图和目的与 sprocs 相同)返回一个表变量。

【讨论】:

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

您应该能够在虚拟表上放置触发器,并在触发器内调用 proc。

这绝对是一个 hack,你会想要真正锁定 table 和 proc 的权限。

【讨论】:

  • 但是您能否返回触发器的结果(假设这是 Russ 想要的)?
  • 这是我需要使用视图的一种情况。在 LINQ to Entities 中,将结果集从存储过程映射到自定义实体的过程需要您手动更新 .edmx 文件,这并不好,因为每次从数据库更新模型时更改都会丢失。因此,最好将结果集映射到视图。
猜你喜欢
  • 1970-01-01
  • 2011-11-07
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 2011-01-08
  • 2019-04-03
相关资源
最近更新 更多