何时使用函数以及何时在SQL Server中使用存储过程

时间:2015-12-15 20:50:09

标签: sql sql-server

何时使用函数以及何时在SQL Server中使用存储过程?

我想知道人们对此的想法和经验。另外,想知道何时使用这些视图。我不是在寻找这些db对象的定义。实际情景讨论会很好

2 个答案:

答案 0 :(得分:1)

在我看来,使用SP只是为了阅读数据是一个非常糟糕的习惯。

你必须区分

  • SP:批量,通常是多语句,您可以(几乎)做所有事情。最大的缺陷是,你不能轻易地继续使用SP结果 - 如果你想在进一步的查询中使用SP返回 - 你总是必须将它写入正确声明的表(真实,临时或变量)。这可能是很多容易出错的打字。此外,优化程序能够正常处理此问题。

  • TV-UDF(表值用户定义函数):必须意识到存在两种风格:单语句(ad-hoc)或多语句。第一个是好的,第二个(几乎在所有情况下)非常糟糕!与VIEW相比的一个优点是,参数及其处理是预编译的。

  • 视图:这与ad-hoc TV-UDF一样好。您可以使用模式绑定声明它并处理它,就像它是一个表(索引等)...

Fazit:使用SP进行UPDATE,DELETE,任何类型的数据或结构操作,但进行单一阅读。

答案 1 :(得分:0)

在我的日常工作中,例如,我使用sp来检索,存储,更新和删除记录,我在大多数时间从Web应用程序执行这些sps,但有时当某些sp需要一些复杂或重复的操作时,我会使用函数在需要时重用该操作或在我的sp中留下更干净的代码。

我们通常不使用Views,但为简单起见,您可以使用它们,如果只是调用视图,则不需要使用连接创建相同的长Select命令。

这是我的经历,为我的英语而努力:)。