Как следует из темы, я хочу иметь возможность передавать имена таблиц в качестве параметров с помощью .NET (неважно, какой язык на самом деле) и SQL Server.
Я знаю, как это сделать для значений, например command.Parameters.AddWithValue("whatever", whatever)
с использованием @whatever
в запросе для обозначения параметра. Дело в том, что я нахожусь в ситуации, когда я хочу иметь возможность делать это с другими частями запроса, такими как имена столбцов и таблиц.
Это не идеальная ситуация, но я должен ее использовать, на самом деле она не подвержена SQL-инъекции, поскольку только кто-то, использующий код, может установить эти имена таблиц, а не конечный пользователь. Однако это грязно.
Итак, возможно ли то, о чем я спрашиваю?
РЕДАКТИРОВАТЬ: Чтобы прояснить вопрос о SQL-инъекции, имена таблиц передаются только исходным кодом, в зависимости от ситуации. Это указывает разработчик. У разработчика в любом случае будет доступ к уровню базы данных, поэтому я спрашиваю не столько о безопасности, сколько о том, чтобы сделать код чище.