53.1 向名为 Invoices 的表插入一行
sql
INSERT INTO Invoices /* 可在此列出列名 */
VALUES (123,'1234abc','2016-08-05 20:18:25.770',321,5,'2016-08-04');
若目标表存在 IDENTITY 列,则必须显式列出列名:
sql
INSERT INTO Invoices ([ID],[Num],[DateTime],[Total],[Term],[DueDate])
VALUES (123,'1234abc','2016-08-05 20:18:25.770',321,5,'2016-08-25');
第54章:主键
54.1 创建含标识列的主键表
sql
-- 标识主键------唯一自增数字
create table person (
id int identity(1,1) primary key not null,
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) not null
)
54.2 创建含 GUID 主键的表
sql
-- GUID 主键------任意唯一值
create table person (
id uniqueIdentifier default (newId()) primary key,
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) not null
)
54.3 创建含自然主键的表
sql
-- 自然主键------使用表中已有且唯一的数据
create table person (
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) primary key not null
)
54.4 创建含复合主键的表
sql
-- 复合主键------使用两列或更多列组合成主键
create table person (
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) not null,
primary key (firstName, lastName, dob)
)
54.5 为现有表添加主键
sql
ALTER TABLE person ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)
注意:若候选键列存在重复值,上述语句将失败,因为主键值必须唯一。
54.6 删除主键
sql
ALTER TABLE Person DROP CONSTRAINT pk_PersonSSN