Tôi cảm thấy có nghĩa vụ phải khuyên bạn rằng việc chuyển các biến vào các chuỗi động như thế này khiến bạn dễ dàng sử dụng SQL. Đây là một thực hành xấu và thường bị khó chịu trừ khi được kiểm soát rất chặt chẽ.
Điều đó nói rằng ...
Thay đổi @MySQL của bạn từ varchar thành nvarchar.
Sau đó, hãy thử thay đổi điều này:
set @MySQL = 'select count(*) from ' [email protected] + ' where ' + @MyWhere
set @SQL_Count = @MySQL
set @recordCount = convert(int, @SQL_Count ) -- <<--this is the error
Về điều này:
set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere
exec sp_execute @MySQL, N'@recordCount int OUTPUT', @[email protected] OUTPUT