栗子一:
if 1=1
begin
declare @test varchar
set @test='1'
print 'in if:'+@test
end執行看結果輸出in if:1這是可以預想的結果。那我們在if外面使用變數@test試試。
栗子二:
if 1=1
begin
declare @test varchar
set @test='1'
print 'in if:'+@test
endprint 'out if:'+@test
這樣會是什麼結果呢,不知道大家怎麼想的,以我的大腦順勢就想到這應該報錯啊,出了變數的作用域了。實際結果不僅沒報錯而且@test的值還在。
in if:1
out if:1
看見這個結果當時我很鬱悶,sql太出人意料了。
栗子三:
if 1=1
begin
declare @test varchar
set @test='1'
print 'in if:'+@test
endgo
print 'out if:'+@test
這下對了,檢查語法後sql報錯「必須宣告標量變數"@test"」
注:go就是用於乙個sql語句的結束 比如說乙個批處理語句是這樣的 select *from ,b select *from a 在後乙個select後面加上乙個go這樣可以一次執行兩條sql 語句
SQL中declare申明變數
在sql語句中加入變數。declare local variable data type 宣告時須要指定變數的型別,能夠使用set和select對變數進行賦值,在sql語句中就能夠使用 local variable來呼叫變數 宣告中能夠提供值,否則宣告之後全部變數將初始化為null。比如 decla...
SQL中的declare用法
平時寫sql查詢 儲存過程都是憑著感覺來,沒有 過sql的具體語法,一直都是按c 那一套往sql上模仿,前幾天專案中碰到乙個問題引起了我對declare定義變數的作用域的興趣。大家都知道c 中的區域性變數,在if中如果我們定義乙個變數的話他的作用到if結束為止,if外是不識別這個變數的,else裡都...
SQL 學習筆記 ( )
sql 語法特點 1 每個語句以 結束,中間用 包含,間隔。2 對變數和常量等需要用 包含。3 關鍵字大寫,變數名首大寫字母用表名表徵,然後用小寫表徵屬性 基本語句 desc 表名 檢視表詳細屬性 建表 create table 表名 屬性名 型別 約束 主鍵 primary key 如果是域為主鍵...