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

所属分类: 数据库 / MsSql 阅读数: 482
收藏 0 赞 0 分享

在2008之前如果我们想要将表作为输入参数传递给SQL Server存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML传入。

在2008中提供了表值参数。使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样可以省去很多自定义的代码。这样的操作对于存储过程内基于表函数的操作变得非常容易操作。
表值参数是使用用户定义的表类型来声明的。所以使用之前要先定义表类型。

/* 创建表类型.*/
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
 
/* 创建一个存储过程以表值参数作为输入. */
CREATE PROCEDURE dbo. usp_InsertProductionLocation
  @TVP LocationTableType READONLY
  AS
  SET NOCOUNT ON
  INSERT INTO Production.Location
      (Name
      ,CostRate
      ,Availability
      ,ModifiedDate)
    SELECT *, 0, GETDATE()
    FROM @TVP;
    GO
 
 
/* 声明表值参数变量.*/
DECLARE @LocationTVP ASLocationTableType;
 
/* 将数据插入表值变量*/
INSERT INTO @LocationTVP(LocationName, CostRate)
  SELECT Name, 0.00
  FROM Person.StateProvince;
 
/* 将变量传递给存储过程*/
EXEC usp_InsertProductionLocation@LocationTVP;
GO

查询表Production.Location可以看到数据已经插入了。

更多精彩内容其他人还在看

SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题

这篇文章主要介绍了SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Sql Server中的系统视图详细介绍

这篇文章主要介绍了Sql Server中的系统视图详细介绍,本文讲解了系统视图是干什么呢、都定义在哪呢、一些使用例子等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

深入理解Sql Server中的表扫描

这篇文章主要介绍了深入理解Sql Server中的表扫描,本文讲解了表扫描的相关知识、表扫描的运行原理等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

理解Sql Server中的聚集索引

这篇文章主要介绍了理解Sql Server中的聚集索引,本文讲解了聚集索引的作用、聚集索引的运行原理等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Sql Server中的非聚集索引详细介

这篇文章主要介绍了Sql Server中的非聚集索引详细介,本文讲解了非聚集索引为什么能提速这么快、什么是RID、非聚集索引的运行原理等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Sql Server中的DBCC命令详细介绍

这篇文章主要介绍了Sql Server中的DBCC命令详细介绍,本文讲解了什么是DBCC、DBCC到底有多少个命令、如何记住DBCC命令、常用命令的实践等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL Server中将查询结果转换为Json格式脚本分享

这篇文章主要介绍了SQL Server中将查询结果转换为Json格式脚本分享,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL Server中将数据导出为XML和Json方法分享

这篇文章主要介绍了SQL Server中将数据导出为XML和Json方法分享,本文使用PowerShell中的BCP命令实现导出为文件,需要的朋友可以参考下
收藏 0 赞 0 分享

Select count(*)、Count(1)和Count(列)的区别及执行方式

这篇文章主要介绍了Select count(*)、Count(1)和Count(列)的区别及执行方式,很多人其实对这三者之间是区分不清的,本文会阐述这三者的作用、关系以及背后的原理,需要的朋友可以参考下
收藏 0 赞 0 分享

调整SQLServer2000运行中数据库结构

这篇文章主要介绍了调整SQLServer2000运行中数据库结构,十分实用的一个功能,这里推荐给大家,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享
查看更多