SQL 用戶定義表類型,在存儲過程裏使用數據類型作參數
阿新 • • 發佈:2017-05-15
type 查詢 學生 tab net 一個 不同 tex src
在數據庫編程裏使用數據類型,能夠提高代碼的重用性。它們常常被使用在方法和存儲過程中。使用數據類型,我們能夠避免在存儲過程裏定義一串的參數,讓人眼花繚亂,它就相當於面向對象語言裏。向一個方法裏傳入一個對象,而該對象有各種屬性,存儲過程僅僅須要獲取這個對象就能獲取到各個參數,然後做出對應的處理。有所不同的是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 用戶定義表類型,在存儲過程裏使用數據類型作參數