背景
我有一个CSV文件的集合,每个文件都有相同的数据结构。每个文件都是在给定的日历日生成的,因此,例如,我可能在10/8/13中有一个包含20,000条记录的文件,在10/9/13中有一个包含50,000条记录的文件,等等。
所有这些CSV数据都需要导入到Server表中,但我为RecordDate添加了一个列,该列需要设置为生成记录之日的值。
总共有14个CSV文件,所以我不介意运行14个批量插入操作,如下所示:
BULK INSERT CSVTest
FROM 'c:\csvtest.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO但是每次我这样做时,我都需要将RecordDate列设置为生成我要插入的特定CSV的日期。
问题
如何在大量插入CSV文件期间手动设置给定列的值?
发布于 2013-10-29 15:15:52
一种简单的方法是在执行每个大容量插入之前向表上的RecordDate列添加一个默认约束(如果存在,则修改现有约束)。插入的每一行都将获取RecordDate列的默认值(显然,假设该行不包含导入到RecordDate中的值)。完成大容量插入后,删除约束。
alter table <Table Name>
add constraint <constraint name>
default <relevant date here> for [RecordDate]
<run the bulk insert...>
alter table <Table Name>
drop constraint <Constraint Name>https://stackoverflow.com/questions/19661873
复制相似问题