SQL Server 2005與T-SQL增強
以下的文章主要向大家介紹的是SQL Server 2005數(shù)據(jù)庫中的T-SQL增強,SQL Server 2005數(shù)據(jù)庫中的T-SQL增應用比例還是占為多數(shù)的,如果你對這一新開發(fā)的技術,心存好奇的話,以下的文章將會揭開它的神秘面紗。
豐富的數(shù)據(jù)類型 Richer Data Types
1、varchar(max)、nvarchar(max)和varbinary(max)數(shù)據(jù)類型最多可以保存2GB的數(shù)據(jù),可以取代text、ntext或image數(shù)據(jù)類型。
- CREATE TABLE myTable
- (
- id INT,
- content VARCHAR(MAX)
- )
2、XML數(shù)據(jù)類型 XML數(shù)據(jù)類型允許用戶在SQL Server數(shù)據(jù)庫中保存XML片段或文檔。
錯誤處理 Error Handling 1、新的異常處理結構 2、可以捕獲和處理過去會導致批處理終止的錯誤。前提是這些錯誤不會導致連接中斷(通常是嚴重程度為21以上的錯誤,例如,表或數(shù)據(jù)庫完整性可疑、硬件錯誤等等。)。 3、TRY/CATCH 構造
- SET XACT_ABORT ON
- BEGIN TRY
- <core logic>
- END TRY
- BEGIN CATCH TRAN_ABORT
- <exception handling logic>
- END TRY
- @@error may be quired as first statement in CATCH block
4、演示代碼
- USE demo
- GO
創(chuàng)建工作表
- CREATE TABLE student
- (
- stuid INT NOT NULL PRIMARY KEY,
- stuname VARCHAR(50)
- )
- CREATE TABLE score
- (
- stuid INT NOT NULL REFERENCES student(stuid),
- score INT
- )
- GO
- INSERT INTO student VALUES (101,'zhangsan')
- INSERT INTO student VALUES (102,'wangwu')
- INSERT INTO student VALUES (103,'lishi')
- INSERT INTO student VALUES (104,'maliu')
談SQL Server 2005中的T-SQL增強中需要調(diào)用一個運行時錯誤
- SET XACT_ABORT OFF
- BEGIN TRAN
- INSERT INTO score VALUES (101,90)
- INSERT INTO score VALUES (102,78)
- INSERT INTO score VALUES (107, 76) /* 外鍵錯誤 */
- INSERT INTO score VALUES (103,81)
- INSERT INTO score VALUES (104,65)
- COMMIT TRAN
- GO
- SELECT * FROM student
- SELECT * FROM score
使用TRY...CATCH構造,并調(diào)用一個運行時錯誤
- SET XACT_ABORT OFF
- BEGIN TRY
- BEGIN TRAN
- INSERT INTO score VALUES (101,90)
- INSERT INTO score VALUES (102,78)
- INSERT INTO score VALUES (107, 76) /* 外鍵錯誤 */
- INSERT INTO score VALUES (103,81)
- INSERT INTO score VALUES (104,65)
- COMMIT TRAN
- PRINT '事務提交'
- END TRY
- BEGIN CATCH
- ROLLBACK
- PRINT '事務回滾'
- SELECT ERROR_NUMBER() AS ErrorNumber,
- ERROR_SEVERITY() AS ErrorSeverity,
- ERROR_STATE() as ErrorState,
- ERROR_MESSAGE() as ErrorMessage;
- END CATCH
- GO
- SELECT * FROM score
- GO
快照隔離 Snapshot Isolation 1、寫入程序不會阻礙讀取程序 2、新的隔離級別提供了以下優(yōu)點: 1) 提高了只讀應用程序的數(shù)據(jù)可用性 2) 允許在OLTP環(huán)境中執(zhí)行非阻止讀取操作 3) 可對寫入事務進行自動的強制沖突檢測 3、演示代碼
- CREATE DATABASE demo2
- GO
- USE demo2
- ALTER DATABASE demo2 SET allow_snapshot_isolation ON
- CREATE TABLE test
- (
- tid INT NOT NULL primary key,
- tname VARCHAR(50) NOT NULL
- )
- INSERT INTO test VALUES(1,'version1')
- INSERT INTO test VALUES(2,'version2')
- 連接一
- USE demo2
- BEGIN TRAN
- UPDATE test SET tname='version3' WHERE tid=2
- SELECT * FROM test
- 連接二
- USE demo2
- SET transaction isolation level snapshot
- SELECT * FROM test
TOP 增強功能 1、TOP 增強。可以指定一個數(shù)字表達式,以返回要通過查詢影響的行數(shù)或百分比,還可以根據(jù)情況使用變量或子查詢。 可以在DELETE、UPDATE和INSERT查詢中使用TOP選項。 2、更好地替換SET ROWCOUNT選項,使之更為有效。
- OUTPUT
1、SQL Server 2005引入一個新的OUTPUT子句,以使您可以沖修改語句(INSERT、UPDATE、DELETE)中將數(shù)據(jù)返回到表變量中。 2、新的OUTPUT子局的語法為:
- OUTPUT INTO @table_variable
可以通過引用插入的表或刪除的表來訪問被修改的行的舊/新影象,其方式與訪問觸發(fā)器類似。在INSERT語句中,只能訪問插入的表。在DELETE語句中,只能訪問刪除的表。在UPDATE語句中,可以訪問插入的表和刪除的表。
以上的相關內(nèi)容就是對談SQL Server 2005中的T-SQL增強的介紹,望你能有所收獲。
【編輯推薦】