मैं आपको सलाह देने के लिए बाध्य महसूस करता हूं कि इस तरह से गतिशील तारों में चर पारित करने से आप SQL इंजेक्शन के लिए खुल जाते हैं। यह एक बुरा अभ्यास है, और जब तक बहुत सख्ती से नियंत्रित नहीं किया जाता है, तब तक आम तौर पर इसका विरोध किया जाता है।
उसने कहा...
अपने @MySQL को varchar से nvarchar में बदलें।
फिर इसे बदलने का प्रयास करें:
set @MySQL = 'select count(*) from ' [email protected] + ' where ' + @MyWhere
set @SQL_Count = @MySQL
set @recordCount = convert(int, @SQL_Count ) -- <<--this is the error
इसके लिए:
set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere
exec sp_execute @MySQL, N'@recordCount int OUTPUT', @[email protected] OUTPUT