存储过程(输入与输出)与返回-SQL Server

时间:2018-08-19 10:31:20

标签: sql sql-server

我是SQL Server的新手,最近我研究了存储过程。

我想知道什么时候应该使用输入或输出存储过程,它与return有何不同。同样,您什么时候更喜欢使用return而不是存储过程。

我找不到外行指南的确切答案。

我只知道

  • 当您要返回一个或多个数据类型的项时,最好使用输出参数。

  • 通常,对需要返回的任何内容使用输出参数。

  • 当您只想返回仅具有整数数据类型的一项时,最好使用返回值。

  • 通常,返回值仅用于通知存储过程的成功或失败。
  • 返回列表项的值为0表示成功,任何非零值表示失败。

1 个答案:

答案 0 :(得分:3)

实际上很简单:

  • 使用输入参数将数据发送到存储过程中。
  • 使用Output参数从存储过程中返回标量值。
  • 在过程中使用Select语句返回表格数据。
  • 不要使用Return 1 如果要中途终止存储过程,请抛出错误。


1 嗯,这取决于客户端,但是通常,使用错误比返回码更简单,而且更安全。无法保证客户端实际上会检查返回代码,但是如果您抛出错误,则不能忽略。

但是,有时最好返回一个非零的数字来表示失败,但这意味着使用该过程的任何代码都必须知道数字的含义,这通常会导致一团糟。

我曾经在一家使用这种事情的公司工作过,我继承了包含大约300名成员的enum的ac#代码,所有这些代码都是从存储过程中抛出的错误代码-这意味着在每个新错误中任何存储过程都必须首先确保该枚举中没有该错误,如果不是,则必须重新编译c#代码并重新部署它,即使我们仅更改现有过程也是如此。
自然,这是一场维护噩梦。