# SYSPRO tables list: core database tables by module and safe queries

> Source: https://netray.co/erp-help/syspro-tables-list-database-tables-by-module
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

SYSPRO stores data in SQL Server with one admin database (SysproAdmin) and one database per company (for example SysproCompanyA). Table names are module prefixed and Pascal case, such as InvMaster, SorMaster and WipMaster. Query them read-only and write only through business objects.

## Kind

how-to

## System

syspro

## Erp

SYSPRO

## Module

SQL / Reporting

## Query

syspro tables list

## Alternate Queries

- syspro database tables
- syspro table names inventory sales orders
- syspro sql query examples

## Applies To

SYSPRO 7 and SYSPRO 8 on SQL Server. Table and column names can change between releases, so confirm in your own database with the queries below.

## Steps

### Explore SYSPRO tables safely

**Items:**

- Connect with a read-only SQL login, ideally to a replica or restored copy.
- Pick the company database, not SysproAdmin, for business data.
- List tables by prefix to see a module: Inv, Sor, Wip, Por, Ar, Ap, Gen, Bom.
- List the columns of a table with INFORMATION_SCHEMA to confirm exact names.
- Use the key columns (StockCode, SalesOrder, Job, Customer, Supplier) to join tables.
- Build and test the query on a small slice with TOP before running it over everything.
- Save it as a view so reports and tools reuse one definition.

## Sections

### Naming conventions

**Body:**

Tables start with a module prefix: Inv for inventory, Sor for sales orders, Wip for work in progress, Por for purchase orders, Ar for receivables, Ap for payables, Gen for general ledger and Bom for bills of materials. Many transactional tables have a master and a detail, for example SorMaster for the header and SorDetail for lines.

Do not guess columns. Names such as StockCode, SalesOrder and Customer are common, but check them in your release. Customer defined fields and the way some modules store keys with padding differ by setup.

### Core tables by module

**Body:**

- These are widely used tables. Verify each in your database before depending on it.

**Code:**

Inventory   InvMaster (stock codes), InvWarehouse (qty by warehouse)
Sales       SorMaster (order header), SorDetail (order lines)
WIP         WipMaster (job header), WipJobAllMat (material allocations)
Purchasing  PorMasterHdr (PO header), PorMasterDetail (PO lines)
Receivables ArCustomer
Payables    ApSupplier, ApInvoice
GL          GenMaster (accounts), GenJournalDetail
BOM         BomStructure

### Safe query patterns

**Body:**

Use NOLOCK or read committed snapshot on a replica for reporting so you do not block users, and accept that dirty reads are possible. Never update or delete in SYSPRO tables directly: stock, costing and GL are linked in ways the tables alone do not show.

For repeatable reporting, create views owned by a reporting schema and grant read access to those only. That gives you a stable contract when table details shift in an upgrade.

**Code:**

- -- list tables for a module
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'Sor%' ORDER BY TABLE_NAME;
- -- columns of a table
SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'InvMaster' ORDER BY ORDINAL_POSITION;
- -- sample: open sales order lines (check column names first)
SELECT TOP 50 SalesOrder, StockCode, MOrderQty
FROM SorDetail WITH (NOLOCK);

## Pitfalls

- Writing to tables directly, which bypasses costing and GL.
- Running heavy reports against the live database during order entry.
- Assuming column names without checking, then silently joining on the wrong key.
- Querying SysproAdmin for business data.
- Building reports on tables that change in the next release instead of on a view.

## Ai Angle

ERPray can map a plain question such as open orders by customer to the right SYSPRO tables, show you the generated read-only SQL, and run it under a read-only login. Deployed on-prem, it keeps the schema and results inside your network.

## Faq

### Where is the SYSPRO data stored?

**Answer:** In SQL Server: SysproAdmin holds operators, companies and system settings, and each company has its own database, commonly named with a SysproCompany prefix plus the company id.

### Is there an official table list?

**Answer:** SYSPRO publishes data dictionary type information to partners and customers. The most reliable list for your release is the one in your own database, via INFORMATION_SCHEMA.

### Can I add my own tables?

**Answer:** You can add custom tables and views in a separate schema, but keep them clear of SYSPRO's own objects so upgrades do not collide with them.

### Why are some values stored as padded text?

**Answer:** Some keys such as sales orders are stored as fixed width text, often with leading zeros. Match that format when joining or filtering.

## Search terms

syspro tables list, syspro database tables, syspro table names, syspro invmaster, syspro sormaster, syspro wipmaster, syspro sql query, syspro data dictionary

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
