Je pense la même chose que vous avez besoin de type de données XML pour le faire. Je donne un exemple ici. ##
-- 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
Maintenant, créons une procédure stockée qui renvoie deux ensembles de résultats. Laissez-nous créer la procédure stockée suivante qui accepte un paramètre XML. Cette procédure insérera les données du paramètre XML dans la table des employés.
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, c'est intéressant. C'est une solution de contournement. Maintenant, je ne comprends pas l'instruction select 'return value' = @ return_value. –
La valeur de retour est uniquement requise si votre procédure stockée utilise une valeur de retour, parfois utilisée pour la vérification des erreurs et renvoyant un message si le sproc ne peut pas être exécuté. Jetez un oeil à returncode = true pour [cfstoredproc] (http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d55.html) –