以下的文章主要向大家介绍的是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) )
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')
谈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
使用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
快照隔离 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
TOP 增强功能 1、TOP 增强。可以指定一个数字表达式,以返回要通过查询影响的行数或百分比,还可以根据情况使用变量或子查询。 可以在DELETE、UPDATE和INSERT查询中使用TOP选项。 2、更好地替换SET ROWCOUNT选项,使之更为有效。
OUTPUT
1、SQL Server 2005引入一个新的OUTPUT子句,以使您可以冲修改语句(INSERT、UPDATE、DELETE)中将数据返回到表变量中。 2、新的OUTPUT子局的语法为:
OUTPUT INTO @table_variable
可以通过引用插入的表或删除的表来访问被修改的行的旧/新影象,其方式与访问触发器类似。在INSERT语句中,只能访问插入的表。在DELETE语句中,只能访问删除的表。在UPDATE语句中,可以访问插入的表和删除的表。
以上的相关内容就是对谈SQL Server 2005中的T-SQL增强的介绍,望你能有所收获。
很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...
有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...
国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...
假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...
用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...
当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Windows 7默认在防火墙里禁止了。 1、查看主机ip 打开“开始”程序中的“附件”,找到“命令提示符”打开。输入命令:ipconfig,可以看到本机的ip是192.1...