2011-02-01 3 views
0

Мы можем добавить еще один столбец в таблице iC_ProductImageAssociation под названием «» ProductFeatureApplicabilityIdSybase Bulk Copy

этот столбец будет ссылаться на iC_ProductFeatureApplicability. Поэтому, когда продукт предполагает, что ABC с ProductFeature цвета «RED» вставлен в iC_ProductFeatureApplicability, мы можем взять этот ProductFeatureApplicabilityId и сохранить его в таблице iC_ProductImageAssociation.

так что изображение может быть применено к продукту или к продукту или к обоим. Также я планирую создать альтернативную модель данных ProductFeature.

, в котором вместо хранения отдельных столбцов в качестве функции (например, в настоящее время в таблице iC_ProductFeature мы сохраняем в качестве отдельных столбцов цвет, размер, марку и т. Д.), Мы можем создать основную таблицу функций продукта (iC_ProductFeatureMasters), которая будет хранить все эти столбцы в виде строк и во время выполнения administor можно определить дополнительные функции

так iC_ProductFeatureMasters будет хранить данные как

ProductFeatureMasterId      FeatureName 

1           Color 

2           Size 

3           Brand 

4           Dimensions 

и iC_ProductFeature Таблица будет хранить ProductFeatureMasterId и его значение.

так что теперь iC_ProductFeature будет выглядеть, как показано ниже

ProductFeatureId    ProductFeatureMasterId  Description   UOM ID 

1         1      RED 
2         4      10      1  

ответ

0

Вот пример из моего кода:

var table = new DataTable(); 
var sqlCopy = new SqlBulkCopy(dataBaseConnection, SqlBulkCopyOptions.Default, sqlTransaction) { DestinationTableName = destinationTableName}; 
sqlCopy.WriteToServer(table); 

Вы можете найти более подробную информацию по ссылкам ниже:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx

http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server

Вы не можете делать BulkCopy для нескольких таблиц, поэтому вам нужно BulkCopy для каждой из ваших таблиц. Для транзакционного поведения вы должны создать объект Transaction и передать конструкторы объектов BulkCopy.

+0

Объемная копия сервера Sql не будет работать на Sybase. Но в драйверах Sybase ASE для .NET существуют методы массовой копии. –

0

Скорее всего, триггеры и другая логика, которые должны выполняться с каждой вставкой строки, - это то, что мешает работе, а не метод вставки. Даже массовая копия не будет быстрой, если ей нужно выполнить триггеры.

Я бы рекомендовал реорганизовать логику для запуска по всем строкам после того, как они были вставлены, а не по одному за раз. Как правило, вы должны создавать промежуточные таблицы для новых данных, где они будут храниться во время обработки и перед объединением с обычными таблицами данных.

Смежные вопросы