Skip to main content

SharePoint Lists

ERPL-Web exposes SharePoint lists as if they were SQL tables — with typed columns, predicate pushdown, and full read/write support. You can reference sites and lists by their human-readable names rather than GUIDs.

Discover what's there

SELECT * FROM graph_show_sites();
SELECT * FROM graph_show_lists(site => 'finance.sharepoint.com');
SELECT * FROM graph_describe_list(
site => 'finance.sharepoint.com',
list => 'Contracts'
);

Read a list

SELECT *
FROM graph_sharepoint_list_read(
site => 'finance.sharepoint.com',
list => 'Contracts'
)
WHERE Status = 'Active';

Attach a site as a catalog

ATTACH 'finance.sharepoint.com' AS finance (TYPE sharepoint_lists);

SELECT * FROM finance.Contracts;
SELECT COUNT(*) FROM finance.Vendors WHERE Country = 'DE';

Write back

-- Insert a new item
SELECT graph_sharepoint_create_item(
site => 'finance.sharepoint.com',
list => 'Contracts',
fields => { 'Title': 'ACME 2026', 'Status': 'Draft' }
);

-- Bulk insert from a query
COPY (SELECT name AS Title, 'Draft' AS Status FROM new_contracts)
TO 'finance.sharepoint.com/Contracts' (FORMAT graph_sharepoint_list);

See the function reference for the full SharePoint surface (graph_show_lists, graph_describe_list, graph_sharepoint_list_read, graph_sharepoint_create_item, graph_sharepoint_update_items, graph_sharepoint_delete_rows).