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文件参考
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

浙公网安备 33010602011771号