{=start=
#产品序列号 =123456789012;
#日期 ="20080101164543";
{=step=
#检验步骤 =hssStatus;
#结果 =FAIL;
#详细参数 =(
(hssStatus1,1.1,FAIL)
(hssStatus2,2.5,PASS)
(TestTime, 0.88, Minutes )
);
}=step;
{=step=
#检验步骤 =ydlSt;
#结果 =PASS;
#详细参数 =(
(wkfold,1.5,PASS)
(TestTime, 0.11, Minutes )
);
}=step;
=start=}
如以上文件的格式,
一个“产品序列号”有不定多个“检验步骤”,一个“检验步骤”有不定多个“详细参数”。
其中TESTTIME一行的内容可以不理它。
想把这样格式的文件内容存进数据库这样的一张表里,字段列如下:
产品序列号 检验步骤 结果 详细参数 详细参数结果
123456789012 hssStatus FAIL hssStatus1 FAIL
123456789012 hssStatus FAIL hssStatus2 PASS
123456789012 ydlSt PASS wkfold PASS 把数据存在多个表也可以,主要是怎么解析出文件的内容? 最好用C#,其它的也可以。
本来已经发在.NET版了,这里人多,也发一个,大家帮忙分析一下。
#产品序列号 =123456789012;
#日期 ="20080101164543";
{=step=
#检验步骤 =hssStatus;
#结果 =FAIL;
#详细参数 =(
(hssStatus1,1.1,FAIL)
(hssStatus2,2.5,PASS)
(TestTime, 0.88, Minutes )
);
}=step;
{=step=
#检验步骤 =ydlSt;
#结果 =PASS;
#详细参数 =(
(wkfold,1.5,PASS)
(TestTime, 0.11, Minutes )
);
}=step;
=start=}
如以上文件的格式,
一个“产品序列号”有不定多个“检验步骤”,一个“检验步骤”有不定多个“详细参数”。
其中TESTTIME一行的内容可以不理它。
想把这样格式的文件内容存进数据库这样的一张表里,字段列如下:
产品序列号 检验步骤 结果 详细参数 详细参数结果
123456789012 hssStatus FAIL hssStatus1 FAIL
123456789012 hssStatus FAIL hssStatus2 PASS
123456789012 ydlSt PASS wkfold PASS 把数据存在多个表也可以,主要是怎么解析出文件的内容? 最好用C#,其它的也可以。
本来已经发在.NET版了,这里人多,也发一个,大家帮忙分析一下。
bulk insert test
from 'E:\Test.txt'
with(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n' )
select * from test
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ]
[ [ , ] FIELDTERMINATOR = 'field_terminator' ]
[ [ , ] FIRSTROW = first_row ]
[ [ , ] FIRE_TRIGGERS ]
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ]
[ [ , ] KEEPNULLS ]
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ]
[ [ , ] MAXERRORS = max_errors ]
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ]
[ [ , ] TABLOCK ]
[ [ , ] ERRORFILE = 'file_name' ]
)]
参数
database_name
包含指定表或视图的数据库的名称。如果未指定,则默认为当前数据库。
schema_name
表或视图架构的名称。如果用户执行大容量导入操作的默认架构为指定表或视图的架构,则 schema_name 是可选的。如果未指定 schema 并且用户执行大容量导入操作的默认架构与指定表或视图的架构不同,则 SQL Server 将返回一条错误消息,同时取消大容量导入操作。
table_name
要将数据大容量导入其中的表或视图的名称。只能使用其所有列均引用相同基表的视图。有关向视图中加载数据时有哪些限制的详细信息,请参阅 INSERT (Transact-SQL)。
' data_file '
数据文件的完整路径,该数据文件包含要导入到指定表或视图中的数据。使用 BULK INSERT 可以从磁盘(包括网络、软盘、硬盘等)导入数据。
data_file 必须基于运行 SQL Server 的服务器指定有效路径。如果 data_file 为远程文件,则指定通用命名约定 (UNC) 名称。
BATCHSIZE = batch_size
指定批处理中的行数。每个批处理作为一个事务复制至服务器。如果复制操作失败,则 SQL Server 提交或回滚每个批处理的事务。默认情况下,指定数据文件中的所有数据为一个批处理。
有关详细信息,请参阅管理大容量导入的批处理。
CHECK_CONSTRAINTS
指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项,则所有 CHECK 和 FOREIGN KEY 约束都将被忽略,并且在此操作之后表的约束将标记为不可信。
本文来源于<a href='http://www.bloggoo.net'>河床博客</a>
exec master..xp_cmdshell
'bcp "select * from test " queryout e:\test.txt -c -t, -r\n -Sservername -Uusername
-Ppassword'
http://topic.csdn.net/u/20081020/13/c4727c63-8224-447d-aea5-f0d20c6fa902.html