Stored Procedures in MSSQL ↑

This guide documents the workaround implemented to allow executing stored procedures in MSSQL, as well as getting the value of output variables.

Simple Execution ↑

The following stored procedure is used as an example:

CREATE PROCEDURE dbo.SequelTest(
  @Input varchar(25),
  @Output int OUTPUT
)
AS
  SET @Output = LEN(@Input)
  RETURN 0

Execute it as follows:

DB.call_mssql_sproc(:SequelTest, {args: ['Input String', :output]})

Use the :output symbol to denote an output variable. The result will contain a hash of the output variables, as well as the result code and number of affected rows:

{:result => 0, :numrows => 1, :var1 => "1"}

Output variables will be strings by default. To specify their type, include the SQL type:

DB.call_mssql_sproc(:SequelTest, {args: ['Input String', [:output, 'int']]})

Result:

{:result => 0, :numrows => 1, :var1 => 1}

Output variables will be named +var#{n}+ where n is their zero indexed position in the parameter list. To name the output variable, include their name:

DB.call_mssql_sproc(:SequelTest, {args: ['Input String', [:output, nil, 'Output']]})

Result:

{:result => 0, :numrows => 1, :output => "1"}