Я думаю, что для того же вам нужен тип данных XML. Я привожу пример здесь. ##
-- Create a Database
CREATE DATABASE DataTableTest
USE DataTableTest
GO
--Create the sample tables
CREATE TABLE Employees (
EmployeeID BIGINT IDENTITY(1,1),
EmployeeName VARCHAR(50),
DepartmentID BIGINT )
CREATE TABLE Departments (
DepartmentID BIGINT IDENTITY(1,1),
DepartmentName VARCHAR(50) )
GO
-- Populate the Sample Tables
INSERT INTO Departments ( DepartmentName)
SELECT 'IT'
INSERT INTO Employees (EmployeeName, DepartmentID )
SELECT 'JCB', 1
GO
Теперь давайте создадим хранимую процедуру, которая возвращает два набора результатов.
CREATE PROCEDURE GetEmployeeInfo
AS
SET NOCOUNT ON
SELECT EmployeeName, DepartmentID
FROM Employees
WHERE EmployeeID = 1
SELECT DepartmentName FROM Departments
WHERE DepartmentID = 1
GO
Давайте создадим следующую хранимую процедуру, которая принимает параметр XML. Эта процедура вставит данные из параметра XML в таблицу Employee.
CREATE PROCEDURE ProcessXml
(
@data XML
)
AS
INSERT INTO Employees(EmployeeName, DepartmentID)
SELECT
x.d.value('EmployeeName[1]','VARCHAR(50)') AS EmployeeName,
x.d.value('DepartmentID[1]','INT') AS DepartmentID
FROM @data.nodes('/NewDataSet/Table') x(d)
GO