SQL Server存储过程输入参数使用表值
在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可以看到数据已经插入了。
关于优缺点参考:使用表值参数(数据库引擎)
转载于:https://www.cnblogs.com/bbsno1/p/3262778.html
SQL Server存储过程输入参数使用表值相关推荐
- SQL Server存储过程中使用表值作为输入参数示例
这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...
- php mssql 存储过程 输入参数,MSSQL_SQL Server存储过程中使用表值作为输入参数示例,在2008之前如果我们想要将表作 - phpStudy...
SQL Server存储过程中使用表值作为输入参数示例 在2008之前如果我们想要将表作为输入参数传递给SQL Server存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML ...
- Microsoft SQL Server 存储过程
Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...
- SQL Server存储过程初学者
In this article, we will learn how to create stored procedures in SQL Server with different examples ...
- oracle如何调试sql,调试oracle与调试sql server存储过程
[IT168 技术]关于存储过程的调试,知道方法以后很简单,但在不知道的时候,为了测试一个存储过程的正性,print,插入临时表等可谓是使出了浑身解数,烦不胜烦.下面就把我工作中调试oracle存储过 ...
- SQL Server 存储过程中使用raiserror抛出异常
转自(SQL Server 存储过程中使用raiserror抛出异常 ) 一 系统预定义错误代码 SQL Server 有3831个预定义错误代码,由master.dbo.sysmessages 表维 ...
- sql server存储过程基本写法
sql server存储过程的优点 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.当对数据 ...
- SQL server 存储过程的建立和调用
SQL server 存储过程的建立和调用 存储过程的建立和调用 --1.1准备测试需要的数据库:test,数据表:物料表,采购表 if not exists (select * from maste ...
- db2 删除存储过程_数据库教程-SQL Server存储过程使用及异常处理
SQL Server存储过程 存储过程(Procedure)是数据库重要对象之一,也是数据库学习的重点之一.本文,我们以SQL Server为例对存储过程的概念.定义.调用.删除及存储过程调用异常等通 ...
最新文章
- 微软好绝情:Windows 7再无重大更新!
- 周五晚上看了变形金刚
- t430装Linux双系统,thinkpad T430s 在win8上安装ubuntu双系统(UEFI开启)
- 用8小时工作,用24小时思考
- 2020牛客暑期多校训练营(第六场)
- Linux USB札记
- 分布式改造剧集三:Ehcache分布式改造
- 【转】React Vue MVC MVVM MVP
- 平衡二叉查找树插入节点操作( AVLTree ):旋转、调整平衡
- 小白成长建议(9)-苞丁解牛
- python定义数据框大小_python – 如何设置框架的最小和最大高度或宽度?
- 蓝桥杯2015年第六届C/C++B组省赛第八题-移动距离
- OpenGL超级宝典(第7版)之VS2019使用sb7框架搭建自己的程序
- Project 3 :Python爬虫源码实现抓取1000条西刺免费代理IP-HTTPS并保存读取
- 分析BarTender的SDK帮助文档
- BiShop 模式识别与机器学习
- 移动网络安装测试软件,adsl网速测试(中国移动宽带专用测速软件)
- 改变人类命运的造人计划
- 或是独体字吗_知识:贝是独体字吗什么结构
- 左岸读书-知识分子的典型
热门文章
- docker 容器访问宿主机的解决方式
- java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...
- 发送快递:配置静态路由
- ubuntu搭建nginx环境
- pytorch.range() 和 pytorch.arange() 的区别
- MindSpore部署图像分割示例程序
- Centos7 下安装python3及卸载
- CentOS7安装Python3详细步骤与Python2共用方法
- ImageView / Text 使用 android:state_pressed 没有效果的处理方法
- Rendering failed with a known bug ,Please try a rebuild