SQL 用户定义表类型,在存储过程里使用数据类型作参数

在数据库编程里使用数据类型,可以提高代码的重用性,它们经常被使用在方法和存储过程中。使用数据类型,我们可以避免在存储过程里定义一串的参数,让人眼花缭乱,它就相当于面向对象语言里,向一个方法里传入一个对象,而该对象有各种属性,存储过程只需要获取这个对象就能获取到各个参数,然后做出相应的处理。有所不同的是SQL的表类型是可以包含多条数据的,究竟是怎么一回事,且看下面的例子。

1. 首先我创建了一个学生表,包含四个字段,主键是从1开始的自增长型。

GOCREATE TABLE STUDENT(ID INT IDENTITY(1,1) PRIMARY KEY,NAME VARCHAR(50),SEX CHAR,PHONE VARCHAR(20),);

2.定义表类型SUTDENTTYPE,包含三个字段,,分别对应学生表的NAME,SEX和PHONE。之所以如此创建,我是准备在插入新学生数据的存储过程中,以它为参数。

GOCREATE TYPE SUTDENTTYPE AS TABLE(NAME VARCHAR(50),SEX CHAR,PHONE VARCHAR(20));

3.创建插入学生信息的存储过程,它的参数类型是表类型STUDENTTYPE。取出表类型里存储的各条学生记录,将其插入到学生信息表中。

GOCREATE PROCEDURE ADDSTUDENT@NEW_STUDENT AS SUTDENTTYPE READONLYASINSERT INTO STUDENT (NAME, SEX, PHONE)SELECT NAME, SEX, PHONE FROM @NEW_STUDENT;RETURN 0;

4.最后建立参数值并执行存储过程ADDSTUDENT。

GODECLARE @NEW_STUDENT as SUTDENTTYPEINSERT @NEW_STUDENT VALUES ('YLD', 'M', '888'), ('MM', 'F', '123'), ('HQG', 'F', '678'); EXEC ADDSTUDENT @NEW_STUDENT

5.查询STUDENT表的信息,发现已经成功插入了三条学生信息。

版权声明:本文为博主原创文章,转载时须注明本文的详细链接,否则作者将保留追究其法律责任。

莫找借口失败,只找理由成功。(不为失败找理由,要为成功找方法)

SQL 用户定义表类型,在存储过程里使用数据类型作参数

相关文章:

你感兴趣的文章:

标签云: