在SQL Server中,插入多行数据到一个表中通常是通过使用`INSERT`语句配合`SELECT`和`UNION ALL`或`UNION`来实现的。在SQL Server 2000中,这个功能同样适用,对于初学者来说可能会感到困扰,但一旦掌握了这种方法,你会发现它非常实用且高效。下面将详细介绍如何使用`INSERT`语句插入多行记录。
我们需要了解基本的`INSERT INTO`语句结构。通常,插入单行数据是这样的:
```sql
INSERT INTO 表名 (列1, 列2, 列3)
VALUES (值1, 值2, 值3);
```
然而,当你需要插入多行时,可以使用`SELECT`和`UNION ALL`或`UNION`来组合多条记录。`UNION ALL`会包含所有不重复的记录,而`UNION`则会去除重复的记录。在这个例子中,我们想要插入三行数据,每行包含学号、姓名和学校信息,可以这样写:
```sql
INSERT INTO 表名 (学号, 姓名, 学校)
SELECT '040504', '孙明', '山东大学'
UNION ALL
SELECT '040502', '李浩', '山东师范'
UNION ALL
SELECT '040503', '王刚', '烟台大学';
```
这里的关键在于`SELECT`语句,每一部分`SELECT`都代表一行要插入的数据。`UNION ALL`将这些`SELECT`语句的结果合并成一个结果集,然后`INSERT INTO`语句将这个结果集插入到指定的表中。
请注意,`UNION`或`UNION ALL`的每一部分都需要有相同数量的列,并且对应的列数据类型要兼容。如果数据中有重复的记录,使用`UNION ALL`会插入所有记录,而`UNION`只会插入一次。
此外,如果你的数据源来自另一个表或者查询,你可以直接在`SELECT`语句中使用这些源,例如:
```sql
INSERT INTO 目标表 (学号, 姓名, 学校)
SELECT 学号, 姓名, 学校
FROM 源表
WHERE 条件;
```
这样可以一次性将满足条件的所有行从一个表复制到另一个表。
总结一下,插入多行数据到SQL Server表中的方法是通过`INSERT INTO`结合`SELECT`和`UNION ALL`或`UNION`操作。这种方式适用于批量插入大量数据,尤其在数据导入、表间数据迁移或者初始化测试数据时非常有用。希望这个解答能帮助你理解和掌握在SQL Server 2000中插入多行数据的方法。