如何在不使用导入和导出向导的情况下将数据导入SQL Server

时间:2018-01-02 20:12:49

标签: sql-server import ssms bulkinsert

我有大量的文本文件要导入SQL Server。我可以使用导入和导出向导,然后必须手动调整列名称和数据类型。

我一直在寻找bcpBulk Insert给出的一些选项。我按照给出的代码(https://www.mssqltips.com/sqlservertip/1207/different-options-for-importing-data-into-sql-server/)而无处可去。以下是我尝试过的代码段。

 BULK INSERT dbo.industry
 FROM C:\Users\username\Documents\Industry201603
 WITH (fieldterminator = ',', Firstrow = 1)

第一个问题:从本地计算机(C:\驱动器)导入SQL Server的最简单方法是什么?

第二个问题:在导入过程中没有指定列名和数据类型,这是一个问题吗?

2 个答案:

答案 0 :(得分:1)

使用动态SQL并遍历文件。

DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=48)
BEGIN

PRINT @intFlag


declare @fullpath1 varchar(1000)
select @fullpath1 = '''\\your_path_here\' + convert(varchar, getdate()- @intFlag , 112) + '_.txt'''
declare @cmd1 nvarchar(1000)
select @cmd1 = 'bulk insert [dbo].[Daily] from ' + @fullpath1 + ' with (FIELDTERMINATOR = ''\t'', FIRSTROW = 2, ROWTERMINATOR=''0x0a'')'
exec (@cmd1)
几年前我使用这种技术,每天都有数据加载,而且工作得非常好。在此示例中,文件名中包含日期,因此我循环浏览所有文件,并按日期标识每个文件。

答案 1 :(得分:0)

我通过右键单击然后选择编辑前200行并复制和粘贴来完成此操作。我无法使用它,但是这么简单。

我认为如果您拥有大量数据但它确实为我完成了这项工作,那么可能无效。