Я думаю, что для этого вам нужен тип данных 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 Table.
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
Wow user2906092, это интересно. Это обходной путь. Теперь я не понимаю выражение «return value» = @ return_value. –
Возвращаемое значение требуется только в том случае, если ваша хранимая процедура использует возвращаемое значение, которое иногда используется для проверки ошибок и возврата сообщения, если sproc не запускается. Посмотрите на returncode = true для [cfstoredproc] (http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d55.html) –