I\'m trying to set multiple variables to the result of an SQL Query that returns a single row with multiple columns. The SQL statement is in the format of:
SELEC
Create one stored procedure with four output parameters:
CREATE SP_data(
@x INT,
@a int OUTPUT,
@b int OUTPUT,
@c int OUTPUT
@d int output
)
AS
SELECT top 1
@a = a,
@b= b,
@c = x + y,
@d= @d
FROM tablename
WHERE Switch = @x
in the Execute SQL Query in the parameter mapping tab create four output parameters
the execute the proc
EXEXCUT SP_data 1,? OUTPUT,? OUTPUT,? OUTPUT, ? OUTPUT
In the SQL task, under General menu, set the ResultSet property to SingleRow.
Then, in the ResultSet menu, add the variables in the order of your select clause and map the aliases with the variables. For exemple :
SELECT 1 AS One, 2 AS Two
I found a solution to this by using mapping the result sets as a zero-based ordinal set. E.g. under 'Result Set' in the task properties:
result name | variable name
-------------------------------
0 | a
1 | b
3 | c
4 | d
This method allows me to keep my SQL statement unaltered also.