易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL 2005中用XML nodes()函数取代OPENXML

SQL Server 2005为XML提供本地支持;现在可以在OPENXML节点中使用一个带有nodes()函数的XML字段类型把一个XML文件转化为一个行集。让我们来看一个使用OPENXML的简单例子,并显示如何把它转化为在SQL Server 2005中使用XML字段类型和nodes()函数。
  为了使我们的例子简单化,我们将假设我们需要执行某种基于采购订单列表的过程,而这个采购订单将在一个XML文件中指定。该XML文件类似于这样:
   < polist>
  < po>< ponumber>100< /ponumber>< podate>2008-09-10< /podate>< /po>
  < po>< ponumber>101< /ponumber>< podate>2008-09-11< /podate>< /po>
  < /polist>
  我们可以通过下面的OPENXML把 XML转化为一个行集:
   DECLARE @DocHandle int
  DECLARE @XmlDocument nvarchar(1000)
  SET @XmlDocument = N''< polist>
  < po>< ponumber>100< /ponumber>< podate>2008-09-10< /podate>< /po>
  < po>< ponumber>101< /ponumber>< podate>2008-09-11< /podate>< /po>
  < /polist>''
  EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XmlDocument
  SELECT * from OPENXML (@DocHandle, ''/polist/po'',2)
  WITH (ponumber nvarchar(10),
  podate datetime)
  EXEC sp_xml_removedocument @DocHandle
  下面是执行以上代码段得到的行集:
  
  图一
  这是从上面代码段得到的要点:
  使用OPENXML的第一步是通过访问该存储过程sp_xml_preparedocument来"准备"XML文件,该存储过程将返回一个确认准备好的XML的整数。
  OPENXML是一个行集提供者,这意味着如果它是一张表,那么你同样可以使用它。本质上它是一个带有参数的函数,这些参数将确定该从XML文件中提取什么。
  使用OPENXML的最后步骤是通过访问存储过程sp_xml_removedocument来"释放"准备好的XML文件。
上面的xml存储过程使用共同的MSXML解析组件。
  sp_xml_preparedocument存储过程把准备好的XML文件存储在SQL Server的内部高速缓存中。访问sp_xml_removedocument存储过程是很有必要的,这是为了把准备好的XML文件从高速缓存中消除。根据SQL Server 2005联机帮助,能够用于SQL Server的八分之一总内存可以用于MSX


相关文档:

基于XML的Web分布式数据交换技术

一、WDDX的产生
    WDDX,英文全称为Web Distributed Data
Exchange,是一种基于XML的Web分布式数据交换技术。WDDX最早是美国Allaire公司的程序技术设计师Simeon
Simeonov为了解决ColdFusion中涉及到的分布计算问题而建立的。随着工作的开展,WDDX逐渐演变成为一种可用于不同的应用环境中交换复杂的结构 ......

Load/Unload XML data in DB2

If XML data in the table is less than 32K for each record, then you can directly unload the data as char. If XML data exceeds 32K for some records, then you have to unload the common data and the XML data separately. First, create a template for unloading XML into a PDS: TEMPLATE LOBFRV DSN 'AAA. ......

三种SQL分页法

表中主键必须为标识列,[ID] int IDENTITY (1,1)
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式: 
SELECT TOP 页记录数量 *
from 表名
WHERE (ID NOT IN
  (SELECT TOP (每页行数*(页数-1)) ID
  from 表名
  ORDER BY ID))
  ORDER BY ID
//自己还可以加上一些查询 ......

LINQ to SQL的不足

LINQ to sql虽然将数据库操作和业务逻辑隔离开来,使开发人员能够使用单一的语言和知识能够方便的操作数据库并处理业务逻辑。但是这毕竟是微软O/R解决方案的第一个版本,相比相对成熟的DataSet数据集解决方案来说,我们还是可以看到一些不足。
  首先,我们注意到所有的数据实体并没有从一个基类中派生,这使得给开发通� ......

SQL级联更新和级联删除

alter table 表名
add constraint 约束名
foreign key(字段名) references 主表名(字段名)
on delete cascade
语法:
Foreign Key
(column[,...n])
references referenced_table_name[(ref_column[,...n])]
[on delete cascade]
[on update cascade]
注释:
column:列名
referenced_table_name:外键参考的主键� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号