Вы должны сообщить браузеру, что отправляемое вами не является html и не должно отображаться как таковое в браузере Следующий код можно использовать для возврата некоторого текста в коде на стороне сервера, и он предоставит пользователю диалоговое окно сохранения, как вы хотели:
Response.Clear(); //eliminates issues where some response has already been sent
Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.sql", filename));
Response.Write(yourSQL);
Response.End();
filename
: имя, которое вы хотите дать
yourSQL
: содержимое файла sql