2011-02-01 74 views
0

我们可以称之为iC_ProductImageAssociation表添加更多的列“ProductFeatureApplicabilityId”Sybase批量复制

此列将引用iC_ProductFeatureApplicability。因此,当产品假设产品颜色为'RED'的ABC被插入到iC_ProductFeatureApplicability中时,我们可以使用此ProductFeatureApplicabilityId并将其存储在iC_ProductImageAssociation表中。

so now图像可以应用于产品或产品特征或两者。另外我计划生成一个备用ProductFeature数据模型。我们可以创建一个产品功能(iC_ProductFeatureMasters)的主表,它可以将产品特性(iC_ProductFeatureMasters)作为一个功能存储在其中(而不是像iC_ProductFeature表中那样存储颜色,尺寸,品牌等等)将所有这些列存储为行和在运行时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 Server批量复制在Sybase上不起作用。但是在Sybase的Sybase ASE驱动程序中有批量复制方法。 – 2011-02-01 15:34:57

0

很可能,每行插入需要执行的触发器和其他逻辑是让事情缓慢的原因,而不是插入方法。如果需要执行触发器,则即使批量复制也不会很快。

我建议重构在所有行插入后重新运行的逻辑,而不是一次一个。通常情况下,您需要为新数据创建登台表格,在这些表格中,将在处理之前以及与常规数据表格合并之前进行存储。