批量删除,批量插入不再烦人!(摘自:http://www.cnblogs.com/perfectdesign/archive/2008/08/11/sql-server-2008-table-valued-parameters.html)

目前的批量删除和批量更新,很是烦人,解决方案无非三种:

XML,SQL自定义函数split,和CLR实现split。这几种都比较烦人,代码很多,维护麻烦,很不爽。

现在sql2008新增的一个功能,我也不知道中文名怎么翻译,暂且叫他表参数吧。

大家可以看看示例:

这个就是用户定义的表类型:

 

 

然后给他定义一个类型:

 

Code

 

可以看到,生成的表类型的组成情况,并且居然可以给表类型建立索引,呵呵

 

这个是操作 表类型的脚本:

 

Code

 

 

下面演示如何将表参数作为一个存储过程参数传递,以及ADO.NET的代码

sql部分:

 

Code

 

 

如何在sql中调用此存储过程:

 

Code

 

其中还涉及到一个权限问题,需要执行以下代码:

 

Code

 

从.net app那调用此存储过程:

 

Code

 

 

 

Code

 

 

Code

 

详情可以参看:

http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters

posted on 2008-08-11 12:57  草原和大树  阅读(484)  评论(0编辑  收藏  举报