При условии, что ваши данные чисты, вы можете просто собрать строку с именем и выполнить ее без параметризации, но остерегайтесь SQL-инъекций.
При немного более безопасном подходе вы могли бы сделать с двумя запросами sql. Сначала запросите базу данных, чтобы узнать, существует ли фактическое имя таблицы
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA = @parmTable
добавить имя таблицы в качестве параметра и выполнить запрос. Если результат запроса возвращает количество строк, равное 1, то вы знаете, что у вас хорошее значение. Тогда вы можете построить свою строку как
SQL.ExecQuery( "DROP TABLE " + tablename.ToString, True )
Поскольку вы предварительно указали полное имя таблицы, пытавшееся ЕСТЬ действительное имя таблицы через квалифицированный первый запрос, вы можете удалить с меньшим беспокойством о sql-инъекции.
Возможно, вам даже будет полезно создать собственную функцию, в которую вы передаете параметр имени таблицы, который выполняет как проверку, так и динамический SQL, чтобы отбросить таблицу, если это будет общий процесс.