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

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

 2008-09-04 10:00:41 来源:WEB开发网   
核心提示:一、ITERATOR(迭代) 这种模式提供一种在相似对象列表中遍历对象的标准化方法,在SQL Server数据库中的同义词是游标,带你深入了解T-SQL的十一种设计模式,DECLARE tables CURSORFOR select TABLE_NAME FROM INFORMATION_SCHEMA.TABLESFO

一、ITERATOR(迭代)

这种模式提供一种在相似对象列表中遍历对象的标准化方法。在SQL Server数据库中的同义词是游标。

  DECLARE tables CURSOR
  FOR select TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
  FOR READ ONLY
  DECLARE @table varchar(40)
  OPEN tables
  FETCH tables INTO @table
  WHILE (@@FETCH_STATUS = 0)
  BEGIN
  exec sp_help @table
  FETCH tables INTO @table
  END
  CLOSE tables
  DEALLOCATE tables

注:游标的清理代码:在CLOSE后紧跟DEALLOCATE,实际上可以只运行DEALLOCATE,并且游标也能自动关闭。但这不是最自然,也不是最常见的方法。大家可以理解为:CLOSE抵消OPEN,DEALLOCATE与DECLARE则相反,这样可以使代码保持对称并且合乎逻辑。

二、INTERSECTOR(交集)

这种模式是表示集合交集的一种模板。

1、推荐方法:

select c.companyname,o.orderid

FROM customer c INNER join orders o ON c.customerid = o.customerid

2、旧式语法(不推荐使用)

  select c.companyname,o.orderid
  FROM customer c ,orders o
  where c.customerid = o.customerid

注:实现集合交集还有许多变种方法。但是惯例方法就是方法1,方法2在实现左(右)联接时,条件的表示及结果都可能出现问题,SQL SERVER的后续版本将会取消此种联接方式。

三、QUALIFIER(限定)

限定数据等价于筛选查询所返回的行数。

1、常用法:where子句限定

  select city,count(*) AS NumberCity
  FROM customers
  where city like ’A%’
  GROUP BY city

1 2 3 4 5 6  下一页

Tags:深入 了解 SQL

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