1. 简介
Microsoft SQL Server(简称MSSQL)是一种关系型数据库管理系统。有时,我们需要向MSSQL数据库中插入新记录。虽然这是一项基本任务,但学习插入技巧和最佳实践可以大大提高生产力并降低错误率。
2. 基本插入语句格式(INSERT INTO)
将数据插入MSSQL数据库的基本语句格式如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
在上述代码中,table_name是要插入数据的表名,而括号中的列名是要插入值的列名。插入的值也必须用括号括起来,并与相应的列名保持一致。在实践中,可能只需插入两列的值,如下所示:
INSERT INTO customers (name, email)
VALUES ('John Doe', 'johndoe@mail.com');
在上述代码中,我们向customers表中插入了一个名为“John Doe”的新客户,其电子邮件地址为“johndoe@mail.com”。如果要插入多个记录,则可以在同一语句中添加多个“VALUES”子句:
INSERT INTO customers (name, email)
VALUES ('John Doe', 'johndoe@mail.com'),
('Jane Doe', 'janedoe@mail.com'),
('Bob Smith', 'bobsmith@mail.com');
在上面的代码中,我们向customers表中插入三条新的客户记录。
3. 插入默认值
如果要使用默认值插入记录,则可以使用“DEFAULT”关键字代替要插入的值,如下所示:
INSERT INTO customers (name, email, created_on)
VALUES ('John Doe', 'johndoe@mail.com', DEFAULT);
在上述代码中,我们向customers表中插入新客户John Doe,该记录将使用created_on列的默认值。
4. 插入查询结果
可以使用子查询将插入的值来自另一个表。下面是一个例子:
INSERT INTO customers (name, email, city, state)
SELECT name, email, city, state
FROM old_customers
WHERE membership_status = 'Gold';
在上面的代码中,我们向customers表中插入Gold会员的客户记录,这些记录存储在另一个表old_customers中。
5. 指定列(INSERT INTO column1, column2...)
如果要为除默认值外的某些列插入值,则必须指定这些列。下面是一个例子:
INSERT INTO customers (name, email, created_on)
VALUES ('John Doe', 'johndoe@mail.com', GETDATE());
在上面的代码中,我们向customers表中插入新客户John Doe,该记录包括其姓名、电子邮件地址和当前日期。created_on列将具有该记录插入的精确时间戳。
5.1 与自增ID结合使用
如果要将值插入自动增加ID的表,则有多种方法可以实现这一点,其中最常见的是使用SCOPE_IDENTITY()函数。下面是一个例子:
INSERT INTO customers (name, email)
VALUES ('John Doe', 'johndoe@mail.com');
SELECT SCOPE_IDENTITY();
在上述代码中,我们需要向customers表中插入新客户John Doe的记录。然后我们使用 SCOPE_IDENTITY 函数返回所插入记录的自动增长ID。
6. 小结
在MSSQL数据库中插入新记录是一项基本任务,但是学习和使用插入技巧和最佳实践可以使您更有效地操作数据库,并避免错误。本文介绍了INSERT INTO的基础格式,如何使用默认值和子查询,如何使用SCOPE_IDENTITY与自动增加ID,以及如何指定要插入的某些列。