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

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

 

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

 

 

创建插入学生信息的存储过程,它的参数类型是表类型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;

 

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

 

GO
DECLARE @NEW_STUDENT as SUTDENTTYPE

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

 

 

 

原文地址:http://blog.csdn.net/LeyYang/article/details/47662021

原文地址:https://www.cnblogs.com/suizhikuo/p/5070768.html