SQL Server 全局變量

jopen 8年前發布 | 9K 次閱讀 SQL SQL Server 數據庫服務器

SQL Server中所有全局變量都使用兩個@符號作為前綴

--1.@@error 最后一個T-SQL錯誤的錯誤號(目的是或得違反約束的錯誤號)
insert into Subject values('測試工程師')--違反了約束
select @@ERROR 

--2.@@identity 最后一次插入的標示值
insert into Subject (SubjectName, ClassHour, GradeId) --SubjectId為主鍵,自增
values ('好吧','120',1)
select @@identity  --如果上面是第一次添加,則返回1
--注意:如果你用了delete語句刪除了上面添加的語句后
--再select @@identity ,則返回的還是1

--3.@@language 當前使用的語言
select @@language 

--4.@@rowcount 受上一個SQL語句影響的行數
select * from Subject --如果查到了N條數據
select @@rowcount --則返回的值N

--5.@@SERVERNAME本地服務器的名稱
select @@SERVERNAME  --返回的值 123-PC

--6.@@SERVICENAME 該計算機上的SQL服務的名稱
select @@SERVICENAME --返回的值 MSSQLSERVER

--7.@@TIMETICKS 當前計算機上每刻度的微秒數 每一刻度的時間量依賴于計算機。操作系統的一刻度是 31.25 毫秒,或是三十分之一秒。
select @@TIMETICKS --返回的值 31250

--8.@@TRANCOUNT
--BEGIN TRANSACTION 語句將 @@TRANCOUNT 增加 1。 ROLLBACK TRANSACTION 將 @@TRANCOUNT 遞減到 0,但 ROLLBACK TRANSACTION savepoint_name 除外,它不影響 @@TRANCOUNT。 COMMIT TRANSACTION 或 COMMIT WORK 將 @@TRANCOUNT 遞減 1。 
--在處理事務的時候,一般都用RollBack Transaction來回滾,但是如果在嵌套事務中這樣使用的話,就會出現錯誤。
--在SqlServer里,嵌套事務的層次是由@@TranCount全局變量反映出來的。每一次Begin Transaction都會引起@@TranCount加1。而每一次Commit Transaction都會使@@TranCount減1,而RollBack Transaction會回滾所有的嵌套事務包括已經提交的事務和未提交的事務,而使@@TranCount置0。例如:
--Begin Transaction -- @@TranCount = 1
--BeginTransaction -- @@TranCount = 2 
--BeginTransaction -- @@TranCount = 3
--Commit Transaction -- @@TranCount = 2
--Commit Transaction -- @@TranCount = 1
--Commit Transaction -- @@TranCount = 0
--如果出現錯誤ROLLBACK TRANSACTION 
--則:
--Begin Transaction -- @@TranCount = 1
--BeginTransaction -- @@TranCount = 2 
--BeginTransaction -- @@TranCount = 3
--ROLLBACK TRANSACTION -- @@TranCount = 0
--Commit Transaction -- @@TranCount = 0---出現錯誤
--Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 1, current count = 0.
--如果被嵌套的事務中發生錯誤,最簡單的方法應該是無論如何都先將它提交,同時返回錯誤碼(一個正常情況不可能出現的代碼 如 -1)讓上一層事務來處理這個錯誤,從而使@@TranCount 減1。 這樣外層事務在回滾或者提交的時候能夠保證外層事務在開始的時候和結束的時候保持一致。由于里層事務返回了錯誤碼,因此外層事務(最外層)可以回滾事務,這樣里面已經提交的事務也可以被回滾而不會出現錯誤。
select @@TRANCOUNT

--9.@@VERSION     SQL Server的版本信息
select @@VERSION --返回的值 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)   Apr  2 2010 15:53:02   Copyright (c) Microsoft Corporation  Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1) 

--10.可以創建的,同時連接的最大數目
select @@MAX_CONNECTIONS  --返回的值 32767

其中 8.TRANSOUNT 詳情 https://msdn.microsoft.com/zh-cn/library/ms187967.aspx

10.MAX_CONNECTIONS詳情 http://blog.hehehehehe.cn/a/668.htm

來自: http://www.cnblogs.com/zhangzongle/p/5119016.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!