| 丰富的数据类型 Richer Data Types 1、varchar(max)、nvarchar(max)和varbinary(max)数据类型最多可以保存2GB的数据,可以取代text、ntext或image数据类型。 CREATE TABLE myTable(
 id INT,
 content VARCHAR(MAX)
 )
 2、XML数据类型 XML数据类型允许用户在SQL Server数据库中保存XML片段或文档。 错误处理 Error Handling 1、新的异常处理结构 2、可以捕获和处理过去会导致批处理终止的错误。前提是这些错误不会导致连接中断(通常是严重程度为21以上的错误,例如,表或数据库完整性可疑、硬件错误等等。)。 3、TRY/CATCH 构造 SET XACT_ABORT ONBEGIN 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 demoGO
 --创建工作表
 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')
 --调用一个运行时错误
 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构造,并调用一个运行时错误
 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
 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |