SQL导入和导出向导

我需要将Excel文件导入到SQL Server 2012数据库中。 它将包含每月约12,000行。 我知道我可以使用向导来执行这个任务,但是我想删除目标表中的行,如果它们与正在导入的数据的ID号相匹配。

我能够将数据导入临时表中,然后通过向导在一个脚本中进行匹配/全部删除吗?

我应该看看另一种方法吗?

谢谢

实际上,有一种方法可以像查看表一样查询Excel文件,并且可以非常轻松地执行所描述的操作。 有了这个说法,有一点初步的工作,以使其工作。

为了解释这个问题,我使用一个xlsx文件(用Excel 2013创build)在本地testing了带有两列的单张Sheet1 ,第一行包含了列名称Field1Field2

这是我目前能够做的。

 --SELECT from Sheet1 into a local temp table SELECT * INTO #TempTable FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; Database=C:\Users\pwalton\Documents\test.xlsx', [Sheet1$]); --Clear out the original records DELETE FROM TestImportTable WHERE Field1 IN (SELECT Field1 FROM #TempTable) --Insert the new ones INSERT INTO TestImportTable SELECT * FROM #TempTable --Get rid of the evidence! DROP TABLE #TempTable 

这是我需要做到这一点。

  1. 我下载并安装了2007 Office System Driver:数据连接组件 。

  2. 我必须使用以下命令启用临时查询。

     EXEC sp_configure 'show advanced options', 1 RECONFIGURE GO EXEC sp_configure 'ad hoc distributed queries', 1 RECONFIGURE GO 
  3. 我必须确保我以系统pipe理员身份运行SQL Server Management Studio。 在我的情况下,我需要转移右键单击并以pipe理员身份运行 。 如果您处于更加pipe理的环境中,请与您的networkingpipe理员协作以获得正确的权限。

这应该是你需要的一切。 再次,我在本地进行了testing,并且上面列出的每个项目都需要在一路上克服特定的错误。