全局變量是由系統定義和維護的使用兩個@作為前綴,不能由用戶聲明和賦值!
常用的全局變量如下
@@version :獲取當前使用的SQL Server版本號
EG:
select @@version
顯示信息:
-----------------------------------------------------------------------------------------------------------------------------------------Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
Apr 2 2010 15:48:46
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
@@identity :上條SQL語句返回的標識列的值
EG:
insert into hous(name,price ) values('房間一',299) select @@IDENTITY as 標識列
顯示信息:
(1 行受影響)
標識列
---------------------------------------
5
(1 行受影響)
@@rowcount:返回上條SQL語句的受影響行數
insert into hous(name,price ) values('房間一',299) select @@rowcount as 受影響行數
顯示信息:
(1 行受影響)
受影響行數
-----------
1
(1 行受影響)
@@servername:本地服務器的名稱
EG:
select @@servername
顯示信息:
--------------------------------------------------------------------------------------------------------------------------------
DESKTOP-M5OLTTN
(1 行受影響)
@@error:最後一條sql錯誤的錯誤號
EG:
insert into hous(name,price ) values('房間一') select @@ERROR as 錯誤號
顯示結果:
消息 109,級別 15,狀態 1,第 1 行
INSERT 語句中列的數目大於 VALUES 子句中指定的值的數目。VALUES 子句中值的數目必須與 INSERT 語句中指定的列的數目匹配。
錯誤號
-----------
109
(1 行受影響)
@@servicename:該計算機上的SQL服務器的名稱
EG:
select @@servicename
顯示結果:
--------------------------------------------------------------------------------------------------------------------------------
MSSQLSERVER
(1 行受影響)
@@language:當前使用的語言的名稱
EG:
select @@language
顯示結果:
--------------------------------------------------------------------------------------------------------------------------------
簡體中文
(1 行受影響)
@@max_connections:可以創建的同時連接的最大數目
EG:
select @@MAX_CONNECTIONS
顯示結果:
-----------
32767
(1 行受影響)
@@timeticks:當前計算機上每刻度的微秒數
EG:
select @@timeticks
顯示結果:
-----------
31250
(1 行受影響)
@@trancount:當前連接打開的事務數
EG:
select @@TRANCOUNT
顯示結果:
-----------
0
(1 行受影響)
declare @variable datatype
其中,variable為局部變量的名稱,datatype為數據類型
局部變量有兩種復制方式
1.set @variable = value
2.select @variable=value
select語句一般用於將表中的數據賦給變量
set語句不支持將表中的數據賦給變量
提示:
給一個變量賦值是set比select的效率更高。set不支持同時給多個變量賦值
在sql server中有兩種輸出方式
1.print 局部變量或字符串
2.select 局部變量或字符串
其中select語句輸出數據是查詢語句的特殊用法
語法:
Cast(表達式 as 數據類型)
Convert(數據類型,表達式【,樣式】)
其中“【】”是可選部分。
語法:
Begin
語句或語句塊
end
與C#中的“{}”類似,表示語句快的開始和結束。在一個語句塊中可以包含另一個語句塊
case 多分支語句也和C#中的是swith選擇結構類似也就語法不同
Case的語法:
Case
when 條件1 then 結果1
when 條件2 then 結果2
……
【else 其他結果】
end
其中“【】”是可選部分
值得注意的是:如果省略Else並且when的條件都不為true則返回的結果為null
它是一條或多條SQL語句的集合,也就是一個可執行單元,每個批處理可以編譯成單個可執行單元,從而提高可執行效率。如果批處理包含多條SQL語句,則執行這些語句的所有優化步驟將編譯在單個執行單元中