SQL Server大数据导入导出:将一张表的数据导入到另一张表

时间:2022-08-09 00:51:02



         今天下午休息的时候又被扔给一项任务:把全国的街道数据导入街道表。但是他们扔给我的SQL脚本是从网上down的一个,跟平台这边的数据库设计的完全不一样。


              当时的思路是:先把扔给我的脚本在本地生成一个表,然后选出要的数据,批量插入到开发库所在服务器的表。


              然后,按照这个思路做了个测试:

       

INSERT INTO dbo.test_Street(Code,CountyCode,CnName,VersionNo,Creator,CreateTime,ValidStatus) /*要插入数据的表*/
SELECT NEWID() AS Code,id AS CountryCode,name AS CnName,1 AS VersionNo,'lhc',GETDATE() AS CreateTime,1 AS ValidStatus FROM pre_common_district /*数据来源表*/


           之后,用一个烂脚本成功导入4W多条数据,然后,要做的就是把本地数据库中表导入到开发库中。


           在这里,我们先使用bcp命令导出数据,然后用Bulk Insert向开发库插入数据:


         使用如下命令:

                bcp"kfglxt.dbo.test_Street" out f:\test.txt -c -q -S"ZB-LIUHCH-PC\SQLEXPRESS"-T

                bcp"kfglxt.dbo.test_Street" out f:\test.Dat -c -q -S"ZB-LIUHCH-PC\SQLEXPRESS"-T(也可以,还支持其他格式)


       SQL Server大数据导入导出:将一张表的数据导入到另一张表



       感觉4W多条数据还是分分钟的事,蛮快的。


        SQL Server大数据导入导出:将一张表的数据导入到另一张表




         除了使用cmd执行,也可以直接在查询分析器中执行:


       

EXEC kfglxt..xp_cmdshell '
/*这里填写bcp命令*/
'


   接下来我们要将备份成文件的数据导入开发库:


       

 USE kfglxt
BULK INSERT dbo.test_Street
FROM 'f:\test.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
);

 

       做起来,感觉还是蛮多坑的。。。