INSERT (Transact-SQL)
将一个或更多新行添加到表或视图中。
Transact-SQL 语法约定
语法
[ WITH common_table_expression [ ,...n ] ]
INSERT
????[ TOP ( expression ) [ PERCENT ] ]
????[ INTO ]
????{?object?| rowset_function_limited
??????[ WITH ( Table_Hint_Limited [ ...n ] ) ]
????}
{
????[ ( column_list ) ]
????[ OUTPUT Clause ]
????{ VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ]
????| derived_table
????| execute_statement
| dml_table_source
????| DEFAULT VALUES
????}
}
[; ]
object ::=
{
????[?server_name . database_name . schema_name .
??????| database_name .[ schema_name ] .
??????| schema_name .
????]
????????table_or_view_name
}
dml_table_source ::=
SELECT select_list
FROM ( dml_statement_with_output_clause )
??????????????????????[AS] table_alias [ ( column_alias [ ,...n ] ) ]
[ WHERE search_condition ]
????[ OPTION ( query_hint [ ,...n ] ) ]
参数
WITH common_table_expression
指定在 INSERT 语句作用域内定义的临时命名结果集(也称为公用表表达式)。结果集源自 SELECT 语句。
公用表表达式还可以与 SELECT、DELETE、UPDATE 和 CREATE VIEW 语句一起使用。有关详细信息,请参阅WITH common_table_expression (Transact-SQL)。
TOP ( expression ) [ PERCENT ]
指定将插入的随机行的数目或百分比。expression 可以是行数或行的百分比。在和 INSERT、UPDATE 或 DELETE 语句结合使用的 TOP 表达式中引用的行不按任何顺序排列。
在 INSERT、UPDATE 和 DELETE 语句中,需要使用圆括号分隔 TOP 中的 expression。有关详细信息,请参阅 TOP (Transact-SQL)。
INTO
一个可选的关键字,可以将它用在 INSERT 和目标表之间。
server_name
表或视图所在服务器的名称(将 OPENDATASOURCE 函数用作服务器名称)。如果指定了 server_name,则需要 database_name 和 schema_name。
database_name
数据库的名称。
schema_name
表或视图所属架构的名称。
table_or view_name
要接收数据的表或视图的名称。
table 变量在其作用域内可用作 INSERT 语句中的表源。
table_or_view_name 引用的视图必须可更新,并且只在该视图的 FROM 子句中引用一个基表。例如,多表视图中的 INSERT 必须使用只引用一个基表中的各列的 column_list。有关可更新视图的详细信息,请参阅 CREATE VIEW (Transact-SQL)。
rowset_function_limited
OPENQUERY 或 OPENROWSET 函数。
WITH ( table_hint_limited [... n ] )
指定目标表允许的一个或多个表提示。需要有 WITH 关键字和括号。
不允许 READPAST、NOLOCK 和 READUNCOMMITTED。有关表提示的详细信息,请参阅表提示 (Transact-SQL)。
重要提示:
在将来的 SQL Server 版本中,将删除对作为 INSERT 语句目标的表指定 HOLDLOCK、SERIALIZABLE、READCOMMITTED、REPEATABLEREAD 或
原创力文档

文档评论(0)