SQL 用户定义表类型,在存储过程里使用数据类型作參数
在数据库编程里使用数据类型,能够提高代码的重用性。它们常常被使用在方法和存储过程中。使用数据类型,我们能够避免在存储过程里定义一串的參数,让人眼花缭乱,它就相当于面向对象语言里。向一个方法里传入一个对象,而该对象有各种属性,存储过程仅仅须要获取这个对象就能获取到各个參数,然后做出对应的处理。有所不同的是SQL的表类型是能够包括多条数据的。到底是怎么一回事,且看以下的样例。
1. 首先我创建了一个学生表,包括四个字段,主键是从1開始的自增长型。
GO
CREATE TABLE STUDENT(
ID INT IDENTITY(1,1) PRIMARY KEY,
NAME VARCHAR(50),
SEX CHAR,
PHONE VARCHAR(20),
);
2.定义表类型SUTDENTTYPE,包括三个字段,分别相应学生表的NAME,SEX和PHONE。之所以如此创建,我是准备在插入新学生数据的存储过程中。以它为參数。
GO
CREATE TYPE SUTDENTTYPE AS TABLE(
NAME VARCHAR(50),
SEX CHAR,
PHONE VARCHAR(20)
);
3.创建插入学生信息的存储过程。它的參数类型是表类型STUDENTTYPE。
取出表类型里存储的各条学生记录,将其插入到学生信息表中。
GO
CREATE PROCEDURE ADDSTUDENT
@NEW_STUDENT AS SUTDENTTYPE READONLY AS
INSERT INTO STUDENT (NAME, SEX, PHONE)
SELECT NAME, SEX, PHONE FROM @NEW_STUDENT; RETURN 0;
4.最后建立參数值并运行存储过程ADDSTUDENT。
GO
DECLARE @NEW_STUDENT as SUTDENTTYPE INSERT @NEW_STUDENT
VALUES ('YLD', 'M', '888')
, ('MM', 'F', '123')
, ('HQG', 'F', '678')
;
EXEC ADDSTUDENT @NEW_STUDENT
5.查询STUDENT表的信息,发现已经成功插入了三条学生信息。
SQL 用户定义表类型,在存储过程里使用数据类型作參数的更多相关文章
- SQL 用户定义表类型,在存储过程里使用表类型,表参数作参数
.定义表类型SUTDENTTYPE,包含三个字段,分别对应学生表的NAME,SEX和PHONE.之所以如此创建,我是准备在插入新学生数据的存储过程中,以它为参数. GO CREATE TYPE S ...
- Sql server 浅谈用户定义表类型
1.1 简介 SQL Server 中,用户定义表类型是指用户所定义的表示表结构定义的类型.您可以使用用户定义表类型为存储过程或函数声明表值参数,或者声明您要在批处理中或在存储过程或函数的主体中使用的 ...
- SQL Server 用户定义表类型
用户定义表类型: CREATE TYPE [dbo].[TVP_Location] AS TABLE( [Location] [varchar](50) NOT NULL, [Address] [va ...
- sqlserver 用户定义表类型
有时需要将内存中的表与数据库中的表比较,比如Datatable中有100行数据,需要判断在数据库中是否存在,这个时候我们就可以使用sqlserver中的[用户 定义表类型] 这里最最最重要的思路是把[ ...
- SharePoint 2013 引发类型为“System.ArgumentException”的异常。 參数名: encodedValue
SharePoint 2013 引发类型为"System.ArgumentException"的异常. 參数名: encodedValue 具体错误信息 说明: 运行当前 Web ...
- 【翻译】Flink Table Api & SQL — 用户定义函数
本文翻译自官网:User-defined Functions https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/tabl ...
- SQL——用户定义函数
根据用户定义函数返回值的类型,可将用户定义函数分为如下三个类别: (1) 返回值为可更新表的函数 若用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表也可更新,这样的函数称为内嵌 ...
- C#调用自己定义表类型參数
-SQL SERVER生成測试环境: --创建測试DB CREATE database Sales; go USE Sales GO --创建表类型 IF TYPE_ID('LocalDT') IS ...
- Oracle pl/sql 记录、表类型
一.PL/SQL记录 定义: TYPE <类型名> IS RECORD <列名1 类型1,列名2 类型2,...列名n 类型n,> [NOT NULL] <列的类型> ...
随机推荐
- Java Itext 生成PDF文件
利用Java Itext生成PDF文件并导出,实现效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io.O ...
- 取消安卓listview,scrollview,gridview滑动时候边缘模糊问题
只需在xml文件里面声明: android:faddingEdge = "none" android:faddingEdgelenth = "0dp" andr ...
- Criteria 查询
Criteria.Criterion接口和Expression类组成,他支持在运行时动态生成查询语句. Criteria查询是Hibernate提供的一种查询方式 Hibernate检索方式: PO ...
- Dancing Links X 学习笔记
\(\\\) Definitions 双向链表:记录前后两个指针的链表,每个顺序关系都有双向的指针维护. \(Dancing\ Links\):双向十字循环链表,建立在二维关系上,每个元素记录上下左右 ...
- 【YOLO】只检测人
一.修改源代码 cfg/coco.data classes= #修改成1 train = /home/pjreddie/data/coco/trainvalno5k.txt valid = coco_ ...
- 12--c完数/最大公约数/最小公倍数/素数/回文数
完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报 分类: C/C++(60) 哈尔滨工业大学(8) 版权声明:本文为博主原创文章 ...
- nagios 安装pnp4nagios插件
Naigos install pnp4nagios 绘图插件 原文地址:http://www.cnblogs.com/caoguo/p/5022230.html [root@Cagios ~]# yu ...
- 关于python中的staticmethod
python中的staticmethod 主要是方便将外部函数集成到类体中,美化代码结构,重点在不需要类实例化的情况下调用方法 如果你去掉staticmethod,在方法中加self也可以通过实例化访 ...
- ( 转)Hibernate常用API
http://blog.csdn.net/yerenyuan_pku/article/details/65103203 可在度娘上摘抄如下文字: Hibernate的核心类和接口一共有6个,分别为:S ...
- Scroll / Jump to id without jQuery
<scripttype="text/javascript"> function scroll(element){var ele = document.getElemen ...