SQL Server 2005与T-SQL增强

数据库 SQL Server
以下的文章主要是浅谈SQL Server 2005数据库中的T-SQL增强,以及对其在实际操作中的代码的描述,以下就是文章的主要内容的描述。

以下的文章主要向大家介绍的是SQL Server 2005数据库中的T-SQL增强,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)  
)  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

4、演示代码  

USE demo  
GO 
  • 1.
  • 2.

创建工作表  

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') 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

谈SQL Server 2005中的T-SQL增强中需要调用一个运行时错误  

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 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

使用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  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

快照隔离 Snapshot Isolation 1、写入程序不会阻碍读取程序 2、新的隔离级别提供了以下优点: 1) 提高了只读应用程序的数据可用性 2) 允许在OLTP环境中执行非阻止读取操作 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 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

TOP 增强功能 1、TOP 增强。可以指定一个数字表达式,以返回要通过查询影响的行数或百分比,还可以根据情况使用变量或子查询。 可以在DELETE、UPDATE和INSERT查询中使用TOP选项。 2、更好地替换SET ROWCOUNT选项,使之更为有效。  

OUTPUT  
  • 1.

1、SQL Server 2005引入一个新的OUTPUT子句,以使您可以冲修改语句(INSERT、UPDATE、DELETE)中将数据返回到表变量中。 2、新的OUTPUT子局的语法为:  

OUTPUT INTO @table_variable  
  • 1.

可以通过引用插入的表或删除的表来访问被修改的行的旧/新影象,其方式与访问触发器类似。在INSERT语句中,只能访问插入的表。在DELETE语句中,只能访问删除的表。在UPDATE语句中,可以访问插入的表和删除的表。

以上的相关内容就是对谈SQL Server 2005中的T-SQL增强的介绍,望你能有所收获。

【编辑推荐】

  1. SQL Server主键列的正确查看方式
  2. SQL Server删除群集的实例演示
  3. 对SQL Server数据库与XML支持的正确理解
  4. 解决SQL Server数据库中的安全疑难问题的方案
  5. SQL Server 浏览器的正确应用
责任编辑:佚名 来源: TT中国
相关推荐

2010-10-19 16:06:26

SQL Server索

2010-07-20 13:52:27

SQL Server

2023-08-15 08:26:34

SQL Server查找死锁

2010-06-30 14:54:42

SQL Server

2010-12-06 09:26:23

SQL Server

2010-07-19 13:22:45

SQL Server

2011-03-31 09:30:27

SQL Server数管理SQL

2010-07-13 10:35:20

SQL Server2

2011-10-19 10:07:16

T-SQL查询变量

2011-04-18 13:02:08

SQL Server SQL Server

2009-05-06 17:31:17

SQL EnlightT-SQL分析器

2011-07-06 13:09:11

SQL Server

2010-07-23 12:55:29

SQL Server

2011-09-07 15:11:31

SQL Server同步

2010-07-26 17:43:34

SQL Server

2010-07-13 10:11:48

SQL Server

2013-01-05 13:49:00

2011-07-08 13:40:18

2010-07-09 11:06:13

SQL Server

2011-04-01 16:30:26

T-SQLDateTime
点赞
收藏

51CTO技术栈公众号