国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

SQL中獲得EXEC后面的sql語(yǔ)句或返回值的方法

2024-07-21 02:44:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言:在數(shù)據(jù)庫(kù)程序開(kāi)發(fā)的過(guò)程中,我們經(jīng)常會(huì)碰到利用EXEC來(lái)執(zhí)行一段需要返回某些值的sql語(yǔ)句(通常是構(gòu)造動(dòng)態(tài)sql語(yǔ)句時(shí)使用),或者在一個(gè)存儲(chǔ)過(guò)程中利用EXEC調(diào)用另一個(gè)有返回值的存儲(chǔ)過(guò)程(必須獲得返回值),那么如何獲得這些返回值呢?


1.EXEC執(zhí)行sql語(yǔ)句的情況

declare @rsql varchar(250)

declare @csql varchar(300)

declare @rc nvarchar(500)

declare @cstucount int

declare @ccount int

set @rsql='(select Classroom_id from EA_RoomTime where zc='+@zc+' and xq='+@xq+' and T'+@time+'=''否'') and ClassroomType=''1'''

--exec(@rsql)

set @csql='select @a=sum(teststucount),@b=sum(classcount) from EA_ClassRoom where classroom_id in '

set @rc=@csql+@rsql

exec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--將exec的結(jié)果放入變量中的做法

--select @csql+@rsql

--select @cstucount

上面的@rc這個(gè)sql語(yǔ)句的功能是找出特定時(shí)間段里所有有空的教室數(shù)量以及這些教室所能容納的學(xué)生人數(shù),因?yàn)樯婕暗絼?dòng)態(tài)的sql語(yǔ)句(@csql這句里條件中有一個(gè)列名是動(dòng)態(tài)變化的)的構(gòu)造,所以要放在exec里執(zhí)行,但是同時(shí)我又要返回2個(gè)結(jié)果,所以執(zhí)行時(shí)的代碼為:

 

exec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--將exec的結(jié)果放入變量中的做法

 

這樣就將返回值放到了,@cstucount,@ccount兩個(gè)變量中,得到了我們想要的結(jié)果。


2.exec執(zhí)行帶返回值的存儲(chǔ)過(guò)程的情況


我們來(lái)看一個(gè)簡(jiǎn)單的存儲(chǔ)過(guò)程:


create PRocedure ProTest

(

@name varchar(10),

@money int output

)

as

begin

if(@name='1')

set @money=1000

else

set @money=2000

end

這個(gè)只是一個(gè)簡(jiǎn)單的示例,這個(gè)存儲(chǔ)過(guò)程返回的是@money 這個(gè)參數(shù)的值,那么當(dāng)我們?cè)诹硗庖粋€(gè)存儲(chǔ)過(guò)程中調(diào)用此存儲(chǔ)過(guò)程的時(shí)候如何獲取這個(gè)參數(shù)呢,方法如下:


declare @m int ---用來(lái)接收返回值的變量

exec ProTest @name='1',@money=@m output --一定要注名是output

就這么簡(jiǎn)單,我們就獲得了返回值。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵阳市| 兴海县| 霍山县| 陵水| 涟源市| 增城市| 阿坝| 铜川市| 剑河县| 陵川县| 河南省| 白山市| 瑞昌市| 岐山县| 志丹县| 津南区| 宜兰市| 乡宁县| 保康县| 韶山市| 宜宾县| 河源市| 建昌县| 根河市| 沾化县| 南木林县| 西贡区| 金湖县| 云和县| 西充县| 宜君县| 白银市| 江阴市| 云林县| 嘉荫县| 涪陵区| 宝丰县| 定远县| 遵义市| 错那县| 贵阳市|