SQL中存储过程out与output有什么不

以下是脚本内容:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

--SQLQuery Create By Faywool

create proc Proc_OutPutTest--创建

@numA int,--numA为存储过程的参数

@numB int,--numB为另一参数

@numReturn int output--此为Output,也就是存储过程的返回值

as

begin

if(@numA>@numB)

    set @[email protected]

else

    set @[email protected] --A>B的时候返回A,否则返回B

end

go

declare @numReceive int --先声明一个变量用来接收存储过程的返回值

exec Proc_OutPutTest 1,2, @numReceive output

--调用存储过程并用@numReturn接收存储过程的返回值

select @numReceive--将会返回(1,2)中较大的数字:2

go

create proc Proc_OutTest--新建存储过程

@numC int,--参数C

@numD int,--参数D

@numE int out--参数E用来返回

as

begin

    if(@numC>@numD)

        set @[email protected]--如果C>D,将C赋值给E

    else

        set @[email protected]--否则将D赋值给E

end

 

go

declare @numOutReceive int--声明一个变量

set @numOutReceive=10000--将变量赋值为10000

select @numOutReceive--变量变为10000

exec Proc_OutTest 1,2, @numOutReceive out--将(1,2,@numOutReceive)三个数字传入存储过程

select @numOutReceive--再看变量就变成2了

--总结:

--Out是参数,传进、传出,缺一不可,在存储过程定义的时候一定要有out标识,

--在调用该存储过程的时候也要有out标识

--OutPut则是相当于存储过程的返回值

--不用传进,也不能传进

--它是在存储过程中定义,并且输出的

--   一句话:Out相当于C#中的ref参数(传进、传出缺一不可),而且传进传出的时候都要标识为ref

--           OutPut则为C#中的方法返回值类型,在方法定义时就已经定好了

时间: 2024-10-11 07:26:01

SQL中存储过程out与output有什么不的相关文章

面试问题 - SQL 中存储过程与函数的区别

SQL 中的存储过程与函数没有本质上的区别 函数 -> 只能返回一个变量. 函数可以嵌入到sql中使用, 可以在select 中调用, 而存储过程不行.  但函数也有着更多的限制,比如不能使用临时表 存储过程 -> 可以返回多个变量. 存储过程的定义如下: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量

SQL中存储过程和函数的区别

本质上没区别.只是函数有如:只能返回一个变量的限制.而存储过程可以返回多个.而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行.执行的本质都一样.      函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少       1.    一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强.       2.    对于存储过程来说可以返回参数,而函数只能返回值或者表对象.       3.    存储过程

qt调用sql server存储过程并获取output参数

最近新做的一个项目需要使用qt连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章,如果是连接另一台机器的sql server就不用执行第一步“开启ODBC驱动”了 http://www.cnblogs.com/shaolw/p/3411285.html 另外指定数据库用户名和密码可以使用Uid和Pwd,即原文dsn参数可以这样写: QString dsn = QString("Driver={

Sql 中存储过程详细案例

转自:http://www.cnblogs.com/yank/p/4235609.html 概念 存储过程(Stored Procedure):已预编译为一个可执行过程的一个或多个SQL语句. 创建存储过程语法 CREATE proc | procedure procedure_name [{@参数数据类型} [=默认值] [output], {@参数数据类型} [=默认值] [output], .... ] as SQL_statementsgo 存储过程与SQL语句对比 优势: 1.提高性能

在Delphi中如何获得SQL中存储过程的返回值?

示例存储过程:create procedure proc_loginusername varchar(20),password varchar(20)asdeclare @result intselect @result=count(*) from loginuser where [email protected] and [email protected]if @result=0return 0return 1go Delphi代码:var ret:integer;......      wi

SQL中存储过程和自定义函数的区别(转载)

存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量.有条件执行以及其它强大的编程功能.存储过程可包含程序流.逻辑以及对数据库的查询.它们可以接受参数.输出参数.返回单个或多个结果集以及返回值. 可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点: 1.可以在单个存储过程中执

SQL中存储过程和自定义函数的区别

存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量.有条件执行以及其它强大的编程功能.存储过程可包含程序流.逻辑以及对数据库的查询.它们可以接受参数.输出参数.返回单个或多个结果集以及返回值. 可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点: 1.可以在单个存储过程中执

SQL中存储过程与自定义函数的区别

存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 优点 ①重复使用.存储过程可以重复使用,从而可以减少数据库开发人员的工作量. ②提高性能.存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译.一般的SQL语句每

C#调用SQL中存储过程并用DataGridView显示执行结果

//连接数据库 SqlConnection con = new SqlConnection("server=服务器名称;database=数据库名称;user id=登录名;pwd=登录密码;"); //打开数据库 con.Open(); //调用存储过程 SqlCommand scd = new SqlCommand("存储过程名称", con); scd.CommandType = CommandType.StoredProcedure;//调用命令改成存储格式