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 ]
)