« css设计的日历 A CSS styled calendarXML编码 »

SQL Server 2005中的T-SQL增强

作者:59030777 来源:itpub 

SQL Server 2005中的T-SQL增强(一)

 

 

丰富的数据类型 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 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            --创建工作表            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
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。