日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQLSERVER中SELECT和SET賦值異同點(diǎn)有哪些-創(chuàng)新互聯(lián)

本文小編為大家詳細(xì)介紹“SQL SERVER中SELECT和SET賦值異同點(diǎn)有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“SQL SERVER中SELECT和SET賦值異同點(diǎn)有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

創(chuàng)新互聯(lián)一直通過(guò)網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)互聯(lián)產(chǎn)品、成都全網(wǎng)營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。

SELECT和SET在SQL SERVER中都可以用來(lái)對(duì)變量進(jìn)行賦值,但其用法和效果在一些細(xì)節(jié)上有些不同。

1. 在對(duì)變量賦值方面,SET是ANSI標(biāo)準(zhǔn)的賦值方式,SELECT則不是。這也是SET方式被推薦使用的原因之一。

2. SELECT可以一次對(duì)多個(gè)變量進(jìn)行賦值,而SET一次只能對(duì)一個(gè)變量賦值。

DECLARE @NAME NVARCHAR(128), @AGE INT;SET @NAME = N'小明';SET @AGE=18;PRINT @NAME;PRINT @AGE;GODECLARE @NAME NVARCHAR(128), @AGE INT;SELECT @NAME = N'小明',@AGE=18;PRINT @NAME;PRINT @AGE;

3.當(dāng)使用子查詢給變量賦值時(shí),則要求子查詢必須是標(biāo)量子查詢(即子查詢得到結(jié)果是一個(gè)數(shù)據(jù)或者一行一列),不能返回多個(gè)值,否則會(huì)報(bào)錯(cuò)。

1)但要注意的是,如果在SELECT查詢語(yǔ)句中給變量賦值的時(shí)候,查詢語(yǔ)句返回記錄的多少都不會(huì)產(chǎn)生錯(cuò)誤,變量所得的值是查詢語(yǔ)句最后一行的記錄的相應(yīng)值。

2)如果查詢結(jié)果沒有返回記錄,也就是說(shuō)返回為NULL值時(shí),將整個(gè)子查詢進(jìn)行賦值的方式,SET和SELECT都會(huì)設(shè)置為NULL,而在SELECT查詢語(yǔ)句中賦值,變量會(huì)保持為初始值不受影響。

IF (OBJECT_ID('tempdb..#temp') is not null)BEGIN  DROP TABLE #temp;ENDELSEBEGIN  CREATE TABLE #temp(  [Name] NVARCHAR(128) ,  AGE INT  )ENDGOINSERT INTO #temp([Name],AGE) VALUES(N'小明',18)INSERT INTO #temp([Name],AGE) VALUES(N'小張',19)INSERT INTO #temp([Name],AGE) VALUES(N'小王',17)GODECLARE @NAME1 NVARCHAR(128), @AGE1 INT,@NAME2 NVARCHAR(128), @AGE2 INT;SET @NAME1=(SELECT TOP 1 [NAME] FROM #temp);  --SET標(biāo)量在查詢賦值SELECT @AGE1=(SELECT TOP 1 AGE FROM #temp);    --SELECT標(biāo)量在查詢賦值SELECT @NAME2=[NAME],@AGE2=[AGE] FROM #temp;  --SELECT查詢語(yǔ)句中賦值PRINT @NAME1; --正確運(yùn)行,顯示結(jié)果:小明PRINT @AGE1; --正確運(yùn)行,顯示結(jié)果:18PRINT @NAME2; --正確運(yùn)行,顯示結(jié)果:小王PRINT @AGE2; --正確運(yùn)行,顯示結(jié)果:17GODECLARE @NAME1 NVARCHAR(128), @AGE1 INT,@NAME2 NVARCHAR(128), @AGE2 INT;SELECT @NAME1=N'初始名字',@AGE1=0,@NAME2=N'初始名字',@AGE2=0; --初始化各變量值SET @NAME1=(SELECT TOP 1 [NAME] FROM #temp WHERE 1>1);  --SET標(biāo)量在查詢賦值SELECT @AGE1=(SELECT TOP 1 AGE FROM #temp WHERE 1>1);    --SELECT標(biāo)量在查詢賦值SELECT @NAME2=[NAME],@AGE2=[AGE] FROM #temp WHERE 1>1;  --SELECT查詢語(yǔ)句中賦值PRINT @NAME1; --正確運(yùn)行,實(shí)際值:NULL, 顯示結(jié)果:(空白)PRINT @AGE1; --正確運(yùn)行,實(shí)際值:NULL, 顯示結(jié)果:(空白)PRINT @NAME2; --正確運(yùn)行,實(shí)際和顯示值:初始名字PRINT @AGE2; --正確運(yùn)行,實(shí)際和顯示值:0GO

那么我們?cè)撊绾芜x擇使用哪種方式:

1. 因SET作為ANSI的標(biāo)準(zhǔn),因此其是推薦用法。

2. 在不考慮標(biāo)準(zhǔn)的情況下,如果涉及到對(duì)多個(gè)變量賦值,為了少寫代碼或者獲取多個(gè)全局變量的值時(shí),請(qǐng)考慮使用SELECT,一是因?yàn)楹?jiǎn)便,二是一些全局變量會(huì)在在第二句執(zhí)行時(shí)值發(fā)生變化。

讀到這里,這篇“SQL SERVER中SELECT和SET賦值異同點(diǎn)有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞標(biāo)題:SQLSERVER中SELECT和SET賦值異同點(diǎn)有哪些-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://www.dlmjj.cn/article/dpcchi.html