五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

SQLserver中的declare變量用法

發(fā)布日期:2022-01-09 14:04 | 文章來源:源碼之家

SQL中的declare用法

平時寫SQL查詢、存儲過程都是憑著感覺來,沒有探究過SQL的具體語法,一直都是按c#那一套往SQL上模仿,前幾天項目中碰到一個問題引起了我對declare定義變量的作用域的興趣。

大家都知道c#中的局部變量,在if中如果我們定義一個變量的話他的作用到if結(jié)束為止,if外是不識別這個變量的,else里都不能使用,簡單的寫一下。

if(true)
{
Int32i=1;
Console.WriteLine(i);
}

這個i的作用域就是if里面,如果我們在if外面用這個變量

if(true)
{
Int32i=1;
Console.WriteLine(i);
}
Console.WriteLine(i);

那第二條輸出語句會報錯

The name 'i' does not exist in the current context

說明已經(jīng)出了i的作用域了。

那么我們要是在sql寫這么一段代碼會是什么情況呢?首先寫在if內(nèi)

IF1=1
BEGIN
DECLARE@testVARCHAR
SET@test='1'
PRINT'inif:'+@test
END

運行看結(jié)果輸出in if:1這是可以預(yù)想的結(jié)果。那我們在if外面使用變量@test試試。

IF1=1
BEGIN
DECLARE@testVARCHAR
SET@test='1'
PRINT'inif:'+@test
END
PRINT'outif:'+@test

這樣會是什么結(jié)果呢,不知道大家怎么想的,以我的大腦順勢就想到這應(yīng)該報錯啊,出了變量的作用域了。實際結(jié)果不僅沒報錯而且@test的值還在。

in if:1

out if:1

看見這個結(jié)果當(dāng)時我很郁悶,SQL太出人意料了。

在SQL SERVER 2005的幫助文檔里關(guān)于declare的幫助里發(fā)現(xiàn)這么一句話,備注的第三行“局部變量的作用域是其被聲明時所在批處理”

Msdn的地址:http://msdn.microsoft.com/zh-cn/library/ms188927.aspx

這行字在這么一大篇中還真挺不引人矚目。

現(xiàn)在我們知道原來declare變量的作用域是所在的批處理,if阻斷不了它的作用域,那上面我們的代碼if內(nèi)外的代碼都在一個批處理中,所以@test都是可用的且if里面設(shè)置的值還在。

下面我改造一下代碼,SQL中是以GO語句來區(qū)分批處理的

IF1=1
BEGIN
DECLARE@testVARCHAR
SET@test='1'
PRINT'inif:'+@test
END
GO
PRINT'outif:'+@test

這下對了,檢查語法后SQL報錯“必須聲明標(biāo)量變量"@test"”

注:GO就是用于一個sql語句的結(jié)束 比如說一個批處理語句是這樣的 select *from ,b select *from a 在后一個select后面加上一個GO這樣可以一次執(zhí)行兩條sql 語句

到此這篇關(guān)于SQL server中的declare變量用法的文章就介紹到這了,更多相關(guān)SQL server中的declare變量內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部