`
wangpengfei360
  • 浏览: 1056836 次
文章分类
社区版块
存档分类
最新评论

Sql Server 2008中存储过程传入表值参数

 
阅读更多

SQL Server 2008中SQL应用系列--目录索引


经常我们会遇到需要一次往数据表中插入多行数据。此时,最简单的莫过于调用存储过程。

比如目标表如下:



调用存储过程插入一个行集



如果需要多行,则循环调用存储过程即可。这样做的坏处是显而易见的。于是有了改进方案:


这样,一次可以插入五条数据,当然十条,也可以。但明显也有不足,首先,如果刚好要插入3条数据,那么应该避免null值和允许插入等异常。

幸运的是,SQL Server 2008提供了新的表值参数,可以一次性传入并处理多个行集。

示例如下:


  注意:这种一次转入多个参数的模式与SQL Servrer 2008新增的Values((group1),(group2),...,(groupn))的方式很类似,后者的应用可以看这里:

http://blog.csdn.net/downmoon/article/details/5936706

  小结:SQL Server 2008 新增参数类型-表值参数,使用用户定义的表类型来声明,借助它,可以不必创建临时表或许多参数,即可向存储过程发送多行数据。对于某些繁忙的系统,这减少了应用程序和数据库服务器之间的交互,从而减少了占用的带宽,数据库端的事务处理更高效。


邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn




分享到:
评论

相关推荐

    SQL Server存储过程中使用表值作为输入参数示例

    在2008之前如果我们想要将表作为输入参数传递给SQL Server存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML传入。 在2008中提供了表值参数。使用表值参数,可以不必创建临时表或许多参数...

    SQLserver定时备份存储过程

    SQLserver定时备份作业,直接在程序中调用,根据不同周期传入参数,可以实现定时日备份,定时周备份,定时月备份,执行此操作前,必须开启SQLServerAgent服务,否则无法执行.

    ADO.NET调用SQL Server存储过程

    ADO.NET调用SQL Server存储过程,有参无参,传入传出

    SQL Server中修改“用户自定义表类型”问题的分析与方法

    SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable类型变量),需要定义“用户自定义表类型”,通过“用户自定义表类型”可以接收二维数据集作为参数,在需要修改“用户自定义表类型”的...

    实验9 存储过程的创建和使用

    1.编写带输入参数的存储过程proc_St:在查询分析器中创建一个存储过程,要求输入学号和姓名-----即要求以学号(@SSno)和姓名(@SSname)为存储过程的输入参数(存储过程的参数名必须以@开头,每个参数都应当有数据...

    C#调用存储过程详解(带返回值、参数输入输出等)

    本文实例讲述了C#调用存储过程的方法。分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=...

    通用的存储过程sql分页查询语句

    通用的存储过程sql分页查询语句,节约您的时间....

    2009 年度十大 SQL Server 技巧文章

    SQL Server 2008中最新的文件流功能使得你可以配制一个数据类型为varbinary(max)的列,以便将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储...

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    SQLServer数据库设计规范.txt

    SQLServer数据库设计规范 作者:佚名 厚朴教育来源:网络 点击数:1446 更新时间:2008-12-2 1 相关的设计规范: 1.1 采用有意义的字段名 尽可能地把字段描述的清楚些。当然,也别做过头了,比如...

    存储过程实例解释 事务实例解释 C#中使用带返回值的存储过程

    简单的存储过程 如何在ASP.NET中调用这个存储过程 带参数的存储过程 如何在ASP.NET中调用这个带参数的存储过程 如何根据传入的参数判断执行哪条SQL语句 C#中使用带返回值的存储过程 SqlServer存储过程的事务处理

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc

    如果只更改了语句中的参数值,则 sp_executesql 可用来代替存储过程多次执行 Transact-SQL 语句。因为 Transact-SQL 语句本身保持不变,仅参数值发生变化,所以 SQL Server 查询优化器可能重复使用首次执行时所生成...

    SQL Server存储过程生成insert语句实例

    你肯定有过这样的烦恼,同样的表,不同的数据库,加入你不能执行select insert那么你肯定需要一条这样的存储过程,之需要传入表明,就会给你生成数据的插入语句。当然数据表数量太大,你将最好用别的方式 代码如下...

    sql 存储过程 手动排序

    存储过程的手动排序,可以上移或下移操作 由于通过存储过程完成,只需传入简单的参数就行了,速度快

    .net 连接 sql server 操作类 及说明

    C#.net中 通过 DB连接操作 sql server 操作类 基本操作: 1、执行sql语句并返回 成功或失败(int类型) 2、执行sql语句并返回 数据string 3、执行sql语句并返回 ...6、调用存储过程,传入多个参数,并传出参数和返回值

    Mybatis调用PostgreSQL存储过程实现数组入参传递

    如上所示,参数是一个int数组,Mybatis提供了对调用存储过程的支持,那么PostgreSQL独有的数组类型作为存储过程的参数又将如何处理呢?其实很简单,mybatis提供了typeHandlers可以创建一个数组类型的类型处理器,...

    SQL Server中参数化SQL写法遇到parameter sniff ,导致不合理执行计划重用的快速解决方法

    想必熟悉数据的同学都应该知道,产生parameter sniff最典型的问题就是使用了参数化的SQL(或者存储过程中使用了参数化)写法,如果存在数据分布不均匀的情况下,正常情况下生成的执行计划,在传入在分布数据较多的...

    导出创建用户下各个对象数据结构的sql语句的脚本,包括表、视图、索引、约束等等

    每个存储过程有多个参数,可以控制输出何种形式的内容,如可以只生成删除表的sql,可以在生成的创建表与索引的语句上加上storage子句等等。 <br/>运行 user_dll_sql.sql的准备工作: <br/>1. ...

    在asp.net中操作sql server数据库的一些小技巧

    1.给数据库语句参数传递向数据库操作语句传递参数可以通过存储过程实现,这里给出另外两种简便易捷的方法:可以在C#中通过字符串操作将参数直接传入SQL语句变量中,例如:string s=”Davolio”;string sql= “select...

Global site tag (gtag.js) - Google Analytics