zoukankan      html  css  js  c++  java
  • 表值参数

    表值参数是使用用户定义的表类型来声明的。 

    使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据。

    示例:

    下面的示例使用 Transact-SQL 并展示了如何执行以下操作:

    创建表值参数类型,声明变量来引用它,填充参数列表,然后将值传递到 AdventureWorks 数据库中的存储过程。

    /* Create a table type. 创建表值参数类型*/
    CREATE TYPE LocationTableType 
       AS TABLE
          ( LocationName VARCHAR(50)
          , CostRate INT );
    GO
    /* Create a procedure to receive data for the table-valued parameter. 创建一个存储过程接收表值参数*/
    CREATE PROCEDURE dbo. usp_InsertProductionLocation
       @TVP LocationTableType READONLY
          AS
          SET NOCOUNT ON
          INSERT INTO AdventureWorks2012.Production.Location
             (
                Name
                , CostRate
                , Availability
                , ModifiedDate
             )
          SELECT *, 0, GETDATE()
          FROM @TVP;
    GO
    /* Declare a variable that references the type. */
    DECLARE @LocationTVP AS LocationTableType;
    /* Add data to the table variable. */
    INSERT INTO @LocationTVP (LocationName, CostRate)
       SELECT Name, 0.00
       FROM AdventureWorks2012.Person.StateProvince;
      
    /* Pass the table variable data to a stored procedure. */
    EXEC usp_InsertProductionLocation @LocationTVP;

    表值参数与 BULK INSERT 操作

    表值参数的使用方法与其他基于数据集的变量的使用方法相似;但是,频繁使用表值参数将比大型数据集要快。 大容量操作的启动开销比表值参数大,与之相比,表值参数在插入数目少于 1000 的行时具有很好的执行性能。

    重用的表值参数可从临时表缓存中受益。 这一表缓存功能可比对等的 BULK INSERT 操作提供更好的伸缩性。 使用小型行插入操作时,可以通过使用参数列表或批量语句(而不是 BULK INSERT 操作或表值参数)来获得小的性能改进。 但是,这些方法在编程上不太方便,并且随着行的增加,性能会迅速下降。

    参考网址

  • 相关阅读:
    函数終探------匿名函数
    再探函数2---函数的嵌套与装饰器
    无需触摸芯片的触摸电路
    单芯片移动电源方案——1A同步升压5V--TP4351B
    HTML列表元素
    HTML表格元素
    HTML基本元素
    创建HTML5文档
    HTML5环境安装
    windows本地搭建https环境,tomcat使用https协议
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/12670240.html
Copyright © 2011-2022 走看看