I'm having an issue calling tSQLt.ResultSetFilter when my sproc is expecting a UDT as parameter.
CREATE PROC depletion.IG_Test2 @udt dbo.internalUsagePointCodeIdentifier READONLY AS
SELECT --'New_Readings',
'internalUsagePointCode' internalUsagePointCode,
'usagePointCode' usagePointCode,
'meterRead' reading,
'mr_intervalBegin' intervalStartInclusive,
'mr_intervalEnd' intervalEndExclusive;
GO
DECLARE @internalUsagePointCodes dbo.internalUsagePointCodeIdentifier, @internalUsagePointCode UNIQUEIDENTIFIER = '0c3a89ce-ddbe-4ad6-98ad-1b709d23f447';
INSERT INTO @internalUsagePointCodes
VALUES (@internalUsagePointCode);
DECLARE @SQL NVARCHAR(4000), @PARAM NVARCHAR(4000);
SET @SQL = N'EXEC depletion.IG_Test2 ' + N' @vudt ';
SET @SQL = 'EXEC tSQLt.ResultSetFilter 1,''' + @SQL + '''';
SET @PARAM = N' @vudt dbo.internalUsagePointCodeIdentifier readonly';
INSERT INTO ##rs1
( internalUsagePointCode,
usagePointCode,
reading,
intervalBeginInclusive,
intervalEndExclusive)
EXEC sp_executesql @SQL, @PARAM, @vudt = @internalUsagePointCodes;
[depletion].[test IG_Test] failed: (Error) A .NET Framework error occurred during execution of user-defined routine or aggregate "ResultSetFilter":
System.Data.SqlClient.SqlException: Must declare the scalar variable "@vudt".
System.Data.SqlClient.SqlException:
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnectionSmi.EventSink.DispatchMessages(Boolean ignoreNonFatalMessages)
at System.Data.SqlClient.SqlDataReaderSmi.InternalNextResult(Boolean ignoreNonFatalMessages)
at System.Data.SqlClient.SqlDataReaderSmi.NextResult()
at System.Data.SqlClient.SqlCommand.RunExecuteReaderSmi(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method,
TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
at tSQLtCLR.TestDatabaseFacade.executeCommand(SqlString Command)
at tSQLtCLR.ResultSetFilter.sendSelectedResultSetToSqlContext(SqlInt32 resultsetNo, SqlString command)
at tSQLtCLR.StoredProcedures.ResultSetFilter(SqlInt32 resultSetNo, SqlString command)
.[16,1]{tSQLt.ResultSetFilter,0}