SQLServer系統變數使用

2021-09-07 07:59:08 字數 3368 閱讀 1529

1、@@identity

返回最後插入的標識值。這個變數很有用,當你插入一行資料時,想同時獲得該行的的id(標示列),就可以用@@identity

示例:下面的示例向帶有標識列的表中插入一行,並用 @@identity 顯示在新行中使用的標識值。

insert into jobs (job_desc,min_lvl,max_lvl) values ('accountant',12,125)

select @@identity as 'identity'

2、@@rowcount

返回受上一語句影響的行數。

示例:下面的示例執行 update 語句並用 @@rowcount 來檢測是否有發生更改的行。

update authors set au_lname = 'jones'  where au_id = '999-888-7777'

if @@rowcount = 0

print 'warning: no rows were updated'

3、@@connections

返回自上次啟動 microsoft sql server以來連線或試圖連線的次數。

示例:下面的示例顯示了到當前日期和時間為止試圖登入的次數。

select getdate() as 'date and time', @@connections as 'login attempts'

4、@@cpu_busy

返回自上次啟動 microsoft sql server以來 cpu 的工作時間,單位為毫秒(基於系統計時器的解析度)。

示例:下面的示例顯示了到當前日期和時間為止 sql server cpu 的活動

select @@cpu_busy as 'cpu ms', getdate() as 'as of'

5、@@datefirst

返回 set datefirst 引數的當前值,set datefirst 引數指明所規定的每週第一天:1 對應星期一,2 對應星期二,依次類推,用 7 對應星期日。

示例:下面的示例將每週第一天設為 5 (星期五),並假定當日是星期六。select 語句返回 datefirst 值和當日是此週的第幾天。

set datefirst 5

select @@datefirst as '1st day', datepart(dw, getdate()) as 'today'

6、@@io_busy

返回 microsoft sql server自上次啟動後用於執行輸入和輸出操作的時間,單位為毫秒(基於系統計時器的解析度)。

示例:下面的示例顯示 sql server 自啟動到目前已用於執行輸入/輸出操作的毫秒數。

select @@io_busy as 'io ms', getdate() as 'as of'

7、@@langid

返回當前所使用語言的本地語言識別符號(id)。

示例:下面的示例將當前會話的語言設定為義大利語 (italian),然後用 @@langid 返回義大利語的 id。

set language 'italian'

select @@langid as 'language id'

8、@@language

返回當前使用的語言名。

示例:下面的示例返回當前會話的語言。

select @@language as 'language name'

9、@@max_connections

返回 microsoft sql server上允許的同時使用者連線的最大數。返回的數不必為當前配置的數值。

示例:下面的示例假定 sql server 尚未被重新配置更少的使用者連線。

select @@max_connections

10、@@pack_received

返回 microsoft sql server自上次啟動後從網路上讀取的輸入資料報數目。

示例select @@pack_received

11、@@pack_sent

返回 microsoft sql server自上次啟動後寫到網路上的輸出資料報數目。

示例select @@pack_sent

12、@@packet_errors

返回自 sql server 上次啟動後,在 microsoft sql server連線上發生的網路資料報錯誤數。

示例select @@packet_errors

13、@@servername

返回執行 microsoft sql server的本地伺服器名稱。

示例select @@servername

14、@@servicename

返回 microsoft sql server正在其下執行的登錄檔鍵名。若當前例項為預設例項,則 @@servicename 返回 mssqlserver;若當前例項是命名例項,則該函式返回例項名。

示例select @@servicename

15、@@spid

返回當前使用者程序的伺服器程序識別符號 (id)。

示例:下面的示例返回當前使用者程序的程序 id、登入名和使用者名稱。

select @@spid as 'id', system_user as 'login name', user as 'user name'

16、@@timeticks

返回一刻度的微秒數。

示例select @@timeticks

17、@@total_errors

返回 microsoft sql server自上次啟動後,所遇到的磁碟讀/寫錯誤數。

示例:下面的示例顯示了 sql server 到當前日期和時間為止所遇到的錯誤數。

select @@total_errors as 'errors', getdate() as 'as of'

18、@@total_write

返回 microsoft sql server自上次啟動後寫入磁碟的次數。

示例:下面的示例顯示了到當前日期和時間為止總的磁碟讀寫次數。

select @@total_read as 'reads', @@total_write as 'writes', getdate() as 'as of'

19、@@version

返回 microsoft sql server當前安裝的日期、版本和處理器型別。

示例:下面的示例返回當前安裝的日期、版本和處理器型別。

select @@version

20、@@total_read

返回 microsoft sql server自上次啟動後讀取磁碟(不是讀取快取記憶體)的次數。

示例:下面的示例顯示了到當前日期和時間為止的總的磁碟讀寫次數。

select @@total_read as 'reads', @@total_write as 'writes', getdate() as 'as of'

SQL Server如何使用表變數

參考前乙個例項使用output儲存更新記錄前後資料 改用乙個表變數來實現。首先定義乙個表變數 declare salaryreport table memberid int name nvarchar 100 oldsalary decimal 18,6 newsalary decimal 18,6...

SQL server 中全域性 系統變數總結

rowcount 上句sql 語句所受影響的行數。create table a id int primary key identity 1,1 name varchar 50 age int insert into a values 小明 18 select rowcount fetch statu...

SQLServer 使用變數動態行轉列

drop table test create table test id int identity 1,1 primary key,bizdate varchar 50 type varchar 50 qty float insert into test select 20110501 a 20.5...