WEB开发网
开发学院数据库MSSQL Server 带你深入了解T-SQL的十一种设计模式 阅读

带你深入了解T-SQL的十一种设计模式

 2008-09-04 10:00:41 来源:WEB开发网   
核心提示: 注:通过@@TRANcount<>0可知有活动事务,执行ROLLBACK回滚当前活动连接的所有事务,带你深入了解T-SQL的十一种设计模式(5),当SQL Server使用连接池时(对WEB服务器而言相当常见),在实际应用中编写此种逻辑就非常重要,并且通过复制原型创建新的对象,

注:通过@@TRANcount<>0可知有活动事务,执行ROLLBACK回滚当前活动连接的所有事务。当SQL Server使用连接池时(对WEB服务器而言相当常见),在实际应用中编写此种逻辑就非常重要。由于一个虚连接可以留下一个打开的事务,该事务会影响使用同一物理连接的后续用户,因此,通过主动地执行Restorer模式,让代码知道如何保护自己免受“无赖”事务和其他意外残余的影响。

重要提示

T-SQL的错误处理结构也并非无懈可击,它经常不是按预期的方式或它应该的方法运行。例如,存在许多严重的足以中断当前命令批处理的错误,当这些错误出现时,它让那些可能紧跟在其后的错误处理代码根本没有机会去执行。因此,当出现问题时,即使使用@@ERROR执行代码检查并调用ROLLBACK,还会有错误禁止ROLLBACK执行。这可能是导致孤立事务存在的根本原因,而且也是在开始一个事务前应检查孤立事务的原因。 

七、PROTOTYPE(原型)

此模式的目标:使用一种原型实例指定要创建对象的类型,并且通过复制原型创建新的对象。

1、最常见的实现方式是select...INTO结构

select *
INTO newCustomers
FROM Customers
  select *
INTO newCustomers
FROM Customers
where country=’UK’

注:通过指定一个列列表、where子句、GROUP BY或HAVING子句,可在传送过程中修改原型。

2、复制表结构(T-SQL惯例中也曾提过)

select *
INTO newCustomers
FROM Customers
where 1 = 2

select TOP 0 *
INTO newCustomers
FROM Customers

注:通过错误的where条件或不存在的行实现了复制表结构的功能

上一页  1 2 3 4 5 6 7 8  下一页

Tags:深入 了解 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接