Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql查询多记录插入_Sql_Sql Server 2005 - Fatal编程技术网

sql查询多记录插入

sql查询多记录插入,sql,sql-server-2005,Sql,Sql Server 2005,如何使用MySQL使用单个sql语句插入多条记录: INSERT INTO TABLE (col1, col2) VALUES (val1a, val1b), (val2a, val2b), (valNa, valNb); 您应该使用表类型和大容量插入 编辑: 这可以进一步解释使用任何一种方法。这适用于SQL server,但我对其他数据库不太确定。这两种方法对于一次性插入大量记录都非常有用 对于SQL Server 2005,您可以执行以下操作: INSERT INTO you

如何使用MySQL使用单个sql语句插入多条记录:

INSERT INTO TABLE (col1, col2) VALUES
  (val1a, val1b),
  (val2a, val2b),
  (valNa, valNb);

您应该使用表类型和大容量插入

编辑:


这可以进一步解释使用任何一种方法。这适用于SQL server,但我对其他数据库不太确定。这两种方法对于一次性插入大量记录都非常有用

对于SQL Server 2005,您可以执行以下操作:

INSERT INTO your_table (id, field_1, field_2)
   SELECT 1, 'some-data-a', 'some-data-1'
   UNION ALL
   SELECT 2, 'some-data-b', 'some-data-2'
   UNION ALL
   SELECT 3, 'some-data-c', 'some-data-3'
   UNION ALL
   SELECT 4, 'some-data-d', 'some-data-4';
在大多数现代DBMS中,包括SQL Server 2008和MySQL 5,您可以使用更简洁的语法:

INSERT INTO your_table (id, field_1, field_2) VALUES
   (1, 'some-data-a', 'some-data-1'),
   (2, 'some-data-b', 'some-data-2'),
   (3, 'some-data-c', 'some-data-3'),
   (4, 'some-data-d', 'some-data-4');

您还可以从子查询中插入多条记录

INSERT INTO TABLE (col1, col2) (select a,b from SUB)

我想sql server 2008在我使用的sql server上支持这一点2005@NoviceToDotNet:对于SQL Server 2005,您必须使用第一个选项。另外,请检查:我如何做到这一点,请让我知道刚刚编辑了我的原始文章-应该给你一些参考。两者都是两种不同的方法,链接中的比较将有助于理解哪种方法在场景中更好。