今天拿到一个200m左右的sql文件,打开以后发现里面的sql编写语言很奇怪:wj20021030 # 19871013 # [email protected]
lynched # river999 # [email protected]
ryanonjp # ryan585983 # [email protected]
longyutao_2008 # 79983132 # [email protected]
zyx05 # 7823849 # [email protected]
realya # 85903004 # [email protected]
kylinkuser # wwwnetmm # [email protected]
baozhiqiang # huajing20001 # [email protected]请问有没有办法把这些数据转化成sql数据库表呢?因为数据量太大,无法一个个把它写成sql插入表语言
lynched # river999 # [email protected]
ryanonjp # ryan585983 # [email protected]
longyutao_2008 # 79983132 # [email protected]
zyx05 # 7823849 # [email protected]
realya # 85903004 # [email protected]
kylinkuser # wwwnetmm # [email protected]
baozhiqiang # huajing20001 # [email protected]请问有没有办法把这些数据转化成sql数据库表呢?因为数据量太大,无法一个个把它写成sql插入表语言
--'F:\test.sql' 为你的sql文件
if object_id('test') is not null drop table test
go
CREATE TABLE test
(
val1 nvarchar(max),
val2 nvarchar(max),
val3 nvarchar(max)
)
go
bulk insert test from 'F:\test.sql'
with(
FIELDTERMINATOR='#',
ROWTERMINATOR='\n'
)
go
select * from test
go
--资料
/************************************************************************************************
乌龟代码
*************************************************************************************************//******* 导出到excel */
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' /*********** 导入Excel */
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /*动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = 'c:\test.xls'
set @s ='''Microsoft.Jet.OLEDB.4.0'',
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''
set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'
exec(@s)
*/ SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions /********************** EXCEL导到远程SQL */
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名 (列名1,列名2)
SELECT 列名1,列名2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
/** 导入文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword' /** 导出文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'
或
EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword' /**导出到TXT文本,用逗号分开*/
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'
BULK INSERT 库名..表名
FROM 'c:\test.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
--/* dBase IV文件
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')
--*/ --/* dBase III文件
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')
--*/ --/* FoxPro 数据库
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
--*/ /**************导入DBF文件****************/
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:\VFP98\data;
SourceType=DBF',
'select * from customer where country != "USA" order by country')
go
/***************** 导出到DBF **************
如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句 */insert into openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
select * from 表 /*说明:
SourceDB=c:\ 指定foxpro表所在的文件夹
aa.DBF 指定foxpro表的文件名. */
/*************导出到Access********************/
insert into openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表 /*************导入Access********************/
insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A表) /*文件名为参数*/
declare @fname varchar(20)
set @fname = 'd:\test.mdb'
exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',
'''+@fname+''';''admin'';'''', topics) as a ') SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品 --你的问题--你把文件导入到指定表里就好了
bulk insert 导入到的表 from '你的文件地址'
with(
fieldterminator='字段间的分隔符',--你这里为‘#’
rowterminator='\n'
)
我用bulk批量插入的时候出现了一下错误,请问这个要怎么解决呢?
主要错误 0x80040E14,次要错误 25501
> bulk insert data from 'D:\Temp\test.sql'
with(
fieldterminator='#',
rowterminator='\n')
[ 1,1,bulk ]
我在用这个方法的时候出现了一个奇怪的错误,无法插入数据
主要错误 0x80040E14,次要错误 25501
> bulk insert data from 'D:\Temp\test.sql'
with(
fieldterminator='#',
rowterminator='\n')
[ 1,1,bulk ]