SQL 2008 Table Values Parameters
Table valued parameters sample:Create table and the LoanTable type
IF OBJECT_ID('Loans', N'U') IS NOT NULL
DROP TABLE Loans;
CREATE TABLE Loans (
loan_nbr INT PRIMARY KEY,
loan_date DATETIME,
loan_amount DECIMAL(15, 2));
-- User-defined table type
CREATE TYPE LoanTable
AS TABLE (
loan_nbr INT PRIMARY KEY,
loan_date DATETIME,
loan_amount DECIMAL(15, 2));
GO
Create a stored procedure with a table value parameter
-- Procedure with table valued parameter
-- Must use the READONLY clause
CREATE PROCEDURE InsertLoans
@Loans LoanTable READONLY
AS
begin
INSERT INTO Loans
SELECT loan_nbr, loan_date, loan_amount
FROM @Loans;
end
GO
Sample usage:
-- Declare table variable of the new type
DECLARE @NewLoans LoanTable;
INSERT INTO @NewLoans
VALUES (1, '20080101', 10000.00),
(2, '20080203', 15000.00),
(3, '20080315', 25000.00);
-- Insert new loans using the table variable as parameter
EXEC InsertLoans @NewLoans;
SELECT loan_nbr, loan_date, loan_amount
FROM Loans;
GO
/*
DROP PROCEDURE InsertLoans;
DROP TYPE LoanTable;
DROP TABLE Loans;
*/
Last modified by Mohit @ 4/4/2025 10:17:57 AM