output

更新时间:2023-01-04 16:19:54 阅读: 评论:0


2023年1月4日发(作者:12月英文缩写)

sqlrver存储过程output和return的使⽤⽅法,详解

SQLServer⽬前正⽇益成为WindowNT操作系统上⾯最为重要的⼀种数据库管理系统,随着SQLServer2000的推

出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000系列操作系统⼀统天下的局⾯,在微软的操作系统

上,没有任何⼀种数据库系统能与之抗衡,包括数据库领域中的领头⽺甲⾻⽂公司的看家数据库Oracle在内。不可否

认,SQLServer最⼤的缺陷就是只能运⾏在微软⾃⼰的操作系统上,这⼀点是SQLServer的致命点。但在另⼀⽅⾯

却也成了最好的促进剂,促使SQLServer在⾃⼰仅有的“⼟地”上⾯将⾃⼰的功能发挥到了极⾄最⼤限度的利⽤了NT系

列操作系统的各种潜能!作为SQLServer数据库系统中很重要的⼀个概念就是存储过程,合理的使⽤存储过程,可以

有效的提⾼程序的性能;并且将商业逻辑封装在数据库系统中的存储过程中,可以⼤⼤提⾼整个软件系统的可维护

性,当你的商业逻辑发⽣改变的时候,不再需要修改并编译客户端应⽤程序以及重新分发他们到为数众多的⽤户⼿

中,你只需要修改位于服务器端的实现相应商业逻辑的存储过程即可。合理的编写⾃⼰需要的存储过程,可以最⼤限

度的利⽤SQLServer的各种资源。下⾯我们来看看各种编写SQLServer存储过程和使⽤存储过程的技巧经验。

Input此参数只⽤于将信息从应⽤程序传输到存储过程。

InputOutput此参数可将信息从应⽤程序传输到存储过程,并将信息从存储过程传输回应⽤程序。

Output此参数只⽤于将信息从存储过程传输回应⽤程序。

ReturnValue此参数表⽰存储过程的返回值。SQLServer的存储过程参数列表中不显⽰该参数。它只与存储过程的

RETURN语句中的值相关联。

存储过程为主键⽣成新值后,通常使⽤存储过程中的RETURN语句返回该值,因此⽤来访问该值的参数类型是

ReturnValue参数。

1、不带输⼊参数的简单存储过程

ifobject_id('up_ur')isnotnull

dropprocup_ur

go

createprocup_ur

as

tnocounton

delcare@namevarchar(10)

begin

lect@name=unamefromur

end

tnocountoff

go

ecup_ur

2、带输⼊参数的简单存储过程

ifobject_id('up_ur')isnotnull

dropprocup_ur

go

createprocup_ur

@idint

as

tnocounton

delcare@namevarchar(10)

begin

lect@name=unamefromurwhereuid=@id

end

tnocountoff

go

--执⾏该存储过程

ecup_ur1

3、带Return参数的存储过程

ifobject_id('up_ur')isnotnull

dropprocup_ur

go

createprocup_ur

as

tnocounton

delcare@ageint

begin

lect@age=uagefromur

return@age

end

tnocountoff

go

--执⾏该存储过程

declare@ageint

exec@age=up_ur

lect@age

4、带output参数的存储过程

ifobject_id('up_ur')isnotnull

dropprocup_ur

go

createprocup_ur

@idint,

@namevarchar(10)=''output

as

tnocounton

begin

lect@name=unamefromurwhereuid=@id

end

tnocountoff

go

--执⾏该存储过程

declare@namevarchar(10)

execup_ur2,@nameoutput

lect@name

5、同时带Return和output参数的存储过程

ifexists(lectnamefromsysobjectswherename='up_ur'andtype='p')

dropprocup_ur

go

createprocup_ur

@idint,

@namevarchar(20)output

as

declare@ageint

begin

lect@age=stuage,@name=stunamefromstuinfowhereuid=@id

return@age

end

--执⾏该存储过程

declare@ageint

declare@namevarchar(20)

exec@age=up_ur2,@nameoutput

lect@age,@name

附:SQLServer系统全局变量

@@CONNECTIONS

返回⾃上次启动以来连接或试图连接的次数。

@@CURSOR_ROWS

返回连接上最后打开的游标中当前存在的合格⾏的数量(返回被打开的游标中还未被读取的有效数据⾏的⾏数)

@@DATEFIRST

返回每周第⼀天的数字

@@ERROR

返回最后执⾏的SQL语句的错误代码。

@@FETCH_STATUS

返回被FETCH语句执⾏的最后游标的状态,⽽不是任何当前被连接打开的游标的状态。

@@IDENTITY

返回最后插⼊的标识值

@@LANGID

返回当前所使⽤语⾔的本地语⾔标识符(ID)。

@@LANGUAGE

返回当前使⽤的语⾔名。

@@LOCK_TIMEOUT

返回当前会话的当前锁超时设置,单位为毫秒。

@@PROCID

返回当前过程的存储过程标识符(ID)。

@@ROWCOUNT

返回受上⼀语句影响的⾏数。

@@SERVERNAME

返回运⾏的本地服务器名称。

@@SPID

返回当前⽤户进程的服务器进程标识符(ID)。

@@TRANCOUNT

返回当前连接的活动事务数。

@@VERSION

返回当前安装的⽇期、版本和处理器类型。

@@CPU_BUSY

返回⾃SQLServer最近⼀次启动以来CPU的⼯作时间其单位为毫秒

@@DATEFIRST

返回使⽤SETDATEFIRST命令⽽被赋值的DATAFIRST参数值SETDATEFIRST,命令⽤来指定每周的第⼀天是星

期⼏

@@DBTS

返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟⼀的

@@ERROR

返回执⾏Transact-SQL语句的错误代码

@@FETCH_STATUS

返回上⼀次FETCH语句的状态值

@@IDLE

返回⾃SQLServer最近⼀次启动以来CPU处于空闭状态的时间长短单位为毫秒

@@IO_BUSY

返回⾃SQLServer最近⼀次启动以来CPU执⾏输⼊输出操作所花费的时间其单位为毫秒

@@LANGID

返回当前所使⽤的语⾔ID值

@@LANGUAGE

返回当前使⽤的语⾔名称

@@LOCK_TIMEOUT

返回当前会话等待锁的时间长短其单位为毫秒

@@MAX_CONNECTIONS

返回允许连接到SQLServer的最⼤连接数⽬

@@MAX_PRECISION

返回decimal和numeric数据类型的精确度

@@NESTLEVEL

返回当前执⾏的存储过程的嵌套级数初始值为0

@@OPTIONS

返回当前SET选项的信息

@@PACK_RECEIVED

返回SQLServer通过⽹络读取的输⼊包的数⽬

@@PACK_SENT

返回SQLServer写给⽹络的输出包的数⽬

@@PACKET_ERRORS

返回⽹络包的错误数⽬

@@PROCID

返回当前存储过程的ID值

@@REMSERVER

返回远程SQLServer数据库服务器的名称

@@SERVICENAME

返回SQLServer正运⾏于哪种服务状态之下如MSSQLServerMSDTCSQLServerAgent

@@SPID

返回当前⽤户处理的服务器处理ID值

@@TEXTSIZE

返回SET语句的TEXTSIZE选项值SET语句定义了SELECT语句中text或image数据类型的最⼤长度基本单位为字

@@TIMETICKS

返回每⼀时钟的微秒数

@@TOTAL_ERRORS

返回磁盘读写错误数⽬

@@TOTAL_READ

返回磁盘读操作的数⽬

@@TOTAL_WRITE

返回磁盘写操作的数⽬

@@TRANCOUNT

返回当前连接中处于激活状态的事务数⽬

本文发布于:2023-01-04 16:19:54,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/91621.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:organization
下一篇:breast
标签:output
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图