Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2017 (14.x) y versiones
posteriores De Azure SQL DatabaseAzure
SQL Managed Instance
SQL Database en Microsoft Fabric
Agrega una o varias filas a una tabla node o edge en SQL Server.
Convenciones de sintaxis de Transact-SQL
Sintaxis de la tabla INSERT Into node
La sintaxis para insertar en una tabla de nodo es la misma que para una tabla normal.
[ WITH <common_table_expression> [ ,...n ] ]
INSERT
{
[ TOP ( expression ) [ PERCENT ] ]
[ INTO ]
{ <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
{
[ (column_list) ] | [(<edge_table_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 .
]
node_table_name | edge_table_name
}
<dml_table_source> ::=
SELECT <select_list>
FROM ( <dml_statement_with_output_clause> )
[AS] table_alias [ ( column_alias [ ,...n ] ) ]
[ WHERE <on_or_where_search_condition> ]
[ OPTION ( <query_hint> [ ,...n ] ) ]
<on_or_where_search_condition> ::=
{ <search_condition_with_match> | <search_condition> }
<search_condition_with_match> ::=
{ <graph_predicate> | [ NOT ] <predicate> | ( <search_condition> ) }
[ AND { <graph_predicate> | [ NOT ] <predicate> | ( <search_condition> ) } ]
[ ,...n ]
<search_condition> ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ,...n ]
<graph_predicate> ::=
MATCH( <graph_search_pattern> [ AND <graph_search_pattern> ] [ , ...n] )
<graph_search_pattern>::=
<node_alias> { { <-( <edge_alias> )- | -( <edge_alias> )-> } <node_alias> }
<edge_table_column_list> ::=
($from_id, $to_id, [column_list])
Arguments
Note
En este artículo se describen los argumentos relacionados con el grafo de SQL. Para obtener una lista completa y una descripción de los argumentos admitidos en la instrucción INSERT, vea INSERT TABLE (Transact-SQL). Para obtener instrucciones Transact-SQL estándar, vea INSERT TABLE (Transact-SQL).
INTO
Es una palabra clave opcional que se puede usar entre INSERT y la tabla de destino.
MATCH search_condition_with_match cláusula se puede usar en una subconsulta al insertarla en un nodo o una tabla perimetral. Para obtener MATCH la sintaxis de instrucciones, consulte GRAPH MATCH (Transact-SQL).
graph_search_pattern patrón search proporcionado a la MATCH cláusula como parte del predicado de grafo.
edge_table_column_list Los usuarios deben proporcionar valores para $from_id y $to_id mientras se insertan en un borde. Se devuelve un error si no se proporciona un valor o se insertan valores NUL en estas columnas.
Remarks
- Insertar en un nodo es lo mismo que insertar en cualquier tabla relacional. Los valores de la
$node_idcolumna se generan automáticamente. - Mientras inserta filas en una tabla perimetral, debe proporcionar valores para
$from_idlas columnas y$to_id. - La inserción con BULK en una tabla de nodo es igual que para una tabla relacional.
- Antes de insertar con BULK en una tabla perimetral, las tablas de nodo se deben importar. Así, los valores de
$from_idy$to_idse podrán extraer de la columna$node_idde la tabla de nodo y se insertarán en la tabla perimetral. - En Fabric SQL Database, se permite SQL Graph, pero las tablas Node y Edge no se reflejarán en Fabric OneLake.
Permissions
El permiso INSERT es obligatorio en la tabla de destino.
Los permisos INSERT corresponden de forma predeterminada a los miembros del rol fijo de servidor sysadmin, de los roles fijos de base de datos db_owner y db_datawriter y al propietario de la tabla. Los miembros de los roles sysadmin, db_owner y db_securityadmin y el propietario de la tabla pueden transferir permisos a otros usuarios.
Para ejecutar INSERT con la opción BULK de la función OPENROWSET, debe ser miembro de los roles fijos de servidor sysadmin o bulkadmin.
Examples
A. Insertar en una tabla de nodo
En el ejemplo siguiente se crea una Person tabla de nodos y se insertan dos filas en esa tabla.
-- Create person node table
CREATE TABLE dbo.Person (ID integer PRIMARY KEY, name varchar(50)) AS NODE;
-- Insert records for Alice and John
INSERT INTO dbo.Person VALUES (1, 'Alice');
INSERT INTO dbo.Person VALUES (2,'John');
B. Insertar en una tabla perimetral
En el ejemplo siguiente se crea una friend tabla perimetral y se inserta un borde en la tabla.
-- Create friend edge table
CREATE TABLE dbo.friend (start_date DATE) AS EDGE;
-- Create a friend edge, that connect Alice and John
INSERT INTO dbo.friend VALUES ((SELECT $node_id FROM dbo.Person WHERE name = 'Alice'),
(SELECT $node_id FROM dbo.Person WHERE name = 'John'), '9/15/2011');