Ik voel me verplicht om u te informeren dat het doorgeven van variabelen aan dynamische strings zoals deze u openstelt voor SQL-injecties. Dit is een slechte gewoonte en wordt over het algemeen afgekeurd, tenzij zeer strikt gecontroleerd.
Dat gezegd hebbende...
Wijzig uw @MySQL van varchar in nvarchar.
Probeer dit dan te veranderen:
set @MySQL = 'select count(*) from ' [email protected] + ' where ' + @MyWhere
set @SQL_Count = @MySQL
set @recordCount = convert(int, @SQL_Count ) -- <<--this is the error
Hierop:
set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere
exec sp_execute @MySQL, N'@recordCount int OUTPUT', @[email protected] OUTPUT