将MS Excel数据粘贴到SQL Server

Baj*_*jji 66 sql-server excel copy-paste

我在Excel中有一堆行要粘贴到MS SQL中的新表中.有一个简单的方法吗?

bzl*_*zlm 65

如果您有SQL Server Management Studio,则只需使用鼠标从Excel复制并粘贴到Management Studio中的表中即可.只是

  1. 转到要粘贴的表格.
  2. 选择"编辑前200行".
  3. 右键单击任意位置,然后选择粘贴.

在执行此操作之前,您必须匹配Excel和Management Studio之间的列.此外,您必须使用Management Studio中的表设计器最后(最右侧)放置任何不可编辑的列.

整个过程需要几秒钟(设置和启动 - 不一定要执行),并且不需要任何SQL语句.

  • 对于在SSMS 2005中执行此操作的任何人,只需注意,您需要右键单击左侧的空行标签,而不是单元格本身,然后选择粘贴,否则将最后一个值粘贴到当前行. (6认同)
  • 有关图片,请参见http://www.mssqltips.com/sqlservertip/1430/import-excel-data-into-sql-server-using-copy-and-paste/ (5认同)
  • +1,但您不必选择"编辑前1000行"(SSMS 2005中的那个选项在哪里?).您只需要打开一个表并将其粘贴到一个空行中.顺便说一句,如果列名相互匹配,它很简单并且有效,但在我的服务器上使用此方法插入40.000行需要45分钟(而不是秒)(插入触发器处于活动状态).因此它很简单,但不灵活和快速. (3认同)
  • 如果第一列是标识列,请确保Excel中的第一列是空列,并在从Excel复制时也包含该列.(您不必将其移动到最后左右)正如其他人所指出的那样,在Management Studio中,请确保通过单击其选择器来选择"新行". (3认同)
  • 至少在 2012 年,您需要专门右键单击空白行第一列左侧的空白灰色“标题”区域之一。如果您右键单击一个单元格,它会尝试复制到该单元格。如果您右键单击左上角的空白灰色“标题”块,就在任何行或列之前,它不会为您提供粘贴选项。尽管从技术上讲,我不确定如果您单击与列相关联的标题区域而不是与行相关联的标题区域会发生什么。 (2认同)

Gal*_*ian 36

我过去成功使用过这种技术:

使用Excel为SQL Server生成插入

(...)跳过一列(或用于记录),然后在其中键入类似下列公式的内容:

="insert into tblyourtablename (yourkeyID_pk, intmine, strval) values ("&A4&", "&B4&", N'"&C4&"')"

现在,您已经获得了包含主键(PK),整数和unicode字符串的表的insert语句.(......)

  • bzlm的答案更适合这个问题.这是一个整洁的小发现,但大多数情况下,bzlm的右击并复制过去的作品! (2认同)
  • 复制和粘贴对我不起作用,“OPENROWSET”命令也不起作用。唯一的办法就是加尔韦吉安的回答! (2认同)
  • 为了使复制和粘贴工作正常,您需要确保没有单击 SQL Server Management Studio 中的字段单元格之一 -而是单击灰色边框之一。 (2认同)

Tho*_*oBa 15

供将来参考:

您可以通过执行以下操作将数据从en excel-sheet复制粘贴到SQL表:

在excel中选择数据,然后按Ctrl + C.

  1. 在Excel中选择数据,然后按Ctrl + C.
  2. 在SQL Server Management Studio中,右键单击该表,然后选择" 编辑前200行"
  3. 滚动到底部,然后通过单击行标题选择整个空行
  4. Ctrl + V粘贴数据

注意:表通常具有第一列,该列是具有自动生成/递增ID的ID列.粘贴数据时,它将开始将Excel中最左侧的选定列插入SSMS中最左侧的列,从而将数据插入ID列.为了避免这种情况,请在选择的最左侧部分保留一个空列,以便在SSMS中跳过该列.这将导致SSMS插入默认数据,即自动生成的ID.此外,您可以通过在Excel工作表选择中的相同序号位置使用空列作为要跳过的列来跳过其他列.这将使SSMS插入默认值(或NULL,其中未指定默认值).

  • 它只让我一次做这一行。我在 Excel 中选择了不止一行的那一刻,在 SSMS 中进行粘贴完全没有作用……什么也没有。我试过 Ctrl+V,我试过右键单击+粘贴,我试过先把它放在记事本中,然后从末尾删除多余的空行,我试过在开头放一个空白列(就像您以前在企业管理器中所做的那样)...没有任何效果。 (2认同)

taj*_*i01 15

高强

  1. 在Excel中,突出显示并复制要粘贴到SQL中的数据.

SQL

  1. 使用所需的列名创建表,并为表指定名称.*确保Identity Specification为是,因此它会自动增加您的标识列.
  2. 找到你的表,然后右键单击它并Edit Top 200 Rows从对话框中选择.
  3. 右键单击带有*符号的空行,然后从对话框中选择粘贴

在此输入图像描述