Saya merasa berkewajiban untuk memberi tahu Anda bahwa meneruskan variabel ke string dinamis seperti ini membuat Anda terbuka untuk injeksi SQL. Ini adalah praktik yang buruk, dan umumnya tidak disukai kecuali dikontrol dengan sangat ketat.
Yang mengatakan...
Ubah @MySQL Anda dari varchar menjadi nvarchar.
Kemudian coba ubah ini:
set @MySQL = 'select count(*) from ' [email protected] + ' where ' + @MyWhere
set @SQL_Count = @MySQL
set @recordCount = convert(int, @SQL_Count ) -- <<--this is the error
Untuk ini:
set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere
exec sp_execute @MySQL, N'@recordCount int OUTPUT', @[email protected] OUTPUT