SQL變數 全局變數: 全局變數是由系統定義和維護的使用兩個@作為首碼,不能由用戶聲明和賦值! 常用的全局變數如下 @@version :獲取當前使用的SQL Server版本號 EG: select @@version 顯示信息: ---------------------------------...
SQL變數
全局變數:
全局變數是由系統定義和維護的使用兩個@作為首碼,不能由用戶聲明和賦值!
常用的全局變數如下
@@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
set和select的區別
select語句一般用於將表中的數據賦給變數
set語句不支持將表中的數據賦給變數
提示:
給一個變數賦值是set比select的效率更高。set不支持同時給多個變數賦值
SQL輸出語句
在sql server中有兩種輸出方式
1.print 局部變數或字元串
2.select 局部變數或字元串
其中select語句輸出數據是查詢語句的特殊用法
數據類型轉換
語法:
Cast(表達式 as 數據類型)
Convert(數據類型,表達式【,樣式】)
其中“【】”是可選部分。
邏輯控制語句
begin-end
語法:
Begin
語句或語句塊
end
與C#中的“{}”類似,表示語句快的開始和結束。在一個語句塊中可以包含另一個語句塊
IF-else和while與C#類似這裡不再一一說明
Case多分支語句
case 多分支語句也和C#中的是swith選擇結構類似也就語法不同
Case的語法:
Case
when 條件1 then 結果1
when 條件2 then 結果2
……
【else 其他結果】
end
其中“【】”是可選部分
值得註意的是:如果省略Else並且when的條件都不為true則返回的結果為null
批處理-go
它是一條或多條SQL語句的集合,也就是一個可執行單元,每個批處理可以編譯成單個可執行單元,從而提高可執行效率。如果批處理包含多條SQL語句,則執行這些語句的所有優化步驟將編譯在單個執行單元中