Хотя API не предоставляет явного интерфейса для установки схемы назначения, вы можете фактически вставить квалифицированное имя таблицы, состоящее из 2 или 3 частей, в свойство DestinationTableName , например:
b.DestinationTableName = string.Format("[{0}].[{1}]", schemaName, tableName);
или
b.DestinationTableName =
string.Format("[{0}].[{1}].[{2}]", databaseName, schemaName, tableName);
Учитывая, что BULK INSERT всегда поддерживал полное имя таблицы, кажется большим упущением, что эти отдельные компоненты никогда не попадали в API.
Более того, поскольку DestinationTableName
просто выводится в оператор BULK INSERT
, это свойство может быть уязвимо для внедрения SQL. Поэтому, если вы в какой-то момент получаете эту информацию от пользователя, обязательно выполните санитарную обработку ввода перед выполнением этой операции.