INSERT 语句向表中添加新行,以下是 INSERT 语句的最基本形式:
首先,table_name 指定要插入的表的名称。通常,通过模式名称引用表名称,例如production.products,其中production是模式名称,products 是表名称。
其次, column_list 指定要在其中插入数据的一个或多个列的列表。必须将列列表括在括号中并用逗号分隔列。如果列在列列表中没有出现,则SQL Server必须能够提供插入值,否则无法插入行。
SQL Server自动对表中可用的列使用以下值,但不会出现在 INSERT 语句的列列表中:如果列具有[IDENTITY]属性,则为下一个增量值。如果列具有指定的默认值,则为默认值。如果列的数据类型是时间戳数据类型(timestamp),则默认为当前时间戳值。如果列可以为 NULL 值,则使用 NULL 。第三,要在 VALUES 子句中提供插入的值列表。 列列表中的每列必须在值列表中具有相应的值。 此外,必须将值列表括在括号中。
创建一个名为 promotions 的新表:
要修改表中的现有数据,请使用以下 UPDATE 语句语法:
在上面语法中,首先,指定要从中更新数据的表的名称。其次,指定要更新的列 c1 , c2 , … , cn 和值 v1 , v2 , … vn 的列表。第三,在 WHERE 子句中指定条件以选择更新的行。WHERE子句是可选的。 如果不指定 WHERE 子句,则表中的所有行都将更新。
首先,在 MERGE 子句中指定 source_table 表和 target_table 表。
其次,merge_condition确定source_table 表中的行如何与 target_table 表中的行匹配。它类似于 join 子句中的 join 条件。通常,使用主键或唯一键的键列进行匹配。
第三, merge_condition 有三种状态: MATCHED , NOT MATCHED 和 NOT MATCHED BY SOURCE 。MATCHED :这些是与合并条件匹配的行。 在图中,它们显示为蓝色。对于匹配的行,需要使source_table 表中的值更新 target_table 表中的行列。NOT MATCHED :这些是 source_table 表中的行, target_table 表中没有任何匹配的行。在图中,它们显示为橙色。在这种情况下,需要将 source_table 表中的行添加到 target_table 表。 NOT MATCHED BY TARGET 也称为目标不匹配。NO MATCHED BY SOURCE :这些是 target_table 表中与 source_table 表中的任何行都不匹配的行。它们在图中显示为绿色。 如果要将 target_table 表与 source_table 表中的数据同步,则需要使用此匹配条件从 target_table 表中删除行。