BCP

https://www.cnblogs.com/zerocc/p/3225723.html

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/aa337558%28v%3dsql.105%29

 

数据库的列数和文件的列数不对应用BCP 插入的fmt文件参考

https://stackoverflow.com/questions/42044365/how-to-import-csv-file-into-sybasease-with-less-columns-than-table-field-by-usin?r=SearchResults

1.  建表

use DB_COMP
go

IF OBJECT_ID ('XXXX') IS NOT NULL
    DROP TABLE XXXX
GO

CREATE TABLE XXXX
(
CHDRCOY       nvarchar(3)    Null,
....

)

go

2.  要导入数据的数据文件(Excel)

 

3.  准备fmt文件

(1)切记最后一行有换行,一行代表数据库中的一列,在最后一行后面多敲一行空行。

(2)其他的格式可以参考官方的介绍

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms191479%28v%3dsql.105%29

11.0
2--数据库的表一共几行
1--数据库的列    SQLCHAR   0     3--数据文件的列                                     ","                           1    数据库列名          SQL_Latin1_General_CP1_CI_AS
2              SQLCHAR   0     0--在数据库有的列在数据文件没有的列就用0           "\r\n"  --最后一行数据的分隔符     2    数据库列名          SQL_Latin1_General_CP1_CI_AS --必须在最后一行留空行


上面的不对应的例子可以参考stackoverflow的例子,对应的就一一对应写就好

 

4.  命令行切在excel和fmt 文件的目录,执行

"C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\bcp.exe" 库名.dbo.表名 in DESCPF.csv -f XXX.fmt -e XXX.err -S servername-U 用户名 -P 密码

 

常见报错:String data, right truncation: 字段长度给的不对,可以具体看看err文件里面的报错,会提示哪一列的。。

     不能打开 BCP host data-file  在命令行执行命令的时候,不要打开可能用到的文件。关闭再试试 

 

bcp INFORMATION_SCHEMA.COLUMNS out "c:\temp\test.txt" -c -t -D -S odbcname  ----不使用账号密码的方式

 

bcp connectiing DB by using non-password way

https://docs.microsoft.com/en-us/sql/connect/odbc/using-azure-active-directory?view=sql-server-ver15

https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15

https://docs.microsoft.com/en-us/sql/tools/osql-utility?view=sql-server-ver15

 

posted @ 2020-05-25 18:44  向日葵呀  阅读(440)  评论(0)    收藏  举报