SAP Business One SQL Server to HANA Migration Checklist
This checklist covers moving SAP Business One company databases from Microsoft SQL Server to SAP Business One, version for SAP HANA. The heavy work is not the data move itself but rewriting SQL in queries, stored procedures, reports and integrations, so most items sit there.
0 of 32 items complete
10 critical items still open - these are the highest-risk gaps.
1. Pre-assessment
2. Rewrite
3. Migration
4. Validation
5. Cutover
Tool names and supported versions change between feature packs. Confirm the migration procedure in the SAP Business One, version for SAP HANA Administrator's Guide for your exact version before you start.
Get your SQL inventory sized
Send us your list of queries, stored procedures and reports and we will estimate which need a rewrite for HANA.
Optional. The tool and every export work without this. No spam.
How to use it
Start with the inventory in group 1; it decides the effort. Every place where SQL is written by hand needs review: saved queries, formatted searches, alerts, SP_TransactionNotification, Crystal reports and integration code. Do a full trial migration of a copy, run the validation group on it, then fix and repeat until the numbers match. Keep the exported checklist per company database.
T-SQL to HANA SQL differences
HANA is stricter about identifiers: unquoted names are upper-cased, so B1 columns such as ItemCode need double quotes. Square brackets do not exist. Common function changes are ISNULL to IFNULL, GETDATE() to CURRENT_DATE or NOW(), DATEADD to ADD_DAYS or ADD_MONTHS, and DATEDIFF to DAYS_BETWEEN. SELECT without a table needs FROM DUMMY. Variables and procedural code in SBO_SP_TransactionNotification become SQLScript: declare error and error_message as local variables, assign with :=, reference them with a colon, and return them at the end with select :error, :error_message FROM DUMMY.
- SQL Server: SELECT ISNULL(T0.[ItemName], '') FROM OITM T0
- HANA: SELECT IFNULL(T0."ItemName", '') FROM OITM T0
- SQL Server: SELECT GETDATE() HANA: SELECT CURRENT_DATE FROM DUMMY
Worked example
A distributor has 2 company databases, 120 saved queries, 40 formatted searches, a 600 line SP_TransactionNotification, 25 Crystal reports and a DI API order import. The inventory shows the stored procedure and 15 reports with SQL commands are the main effort. After rewriting, the first trial migration finds a difference in open purchase orders caused by a custom view; once fixed, the trial balance and stock values match, and the final migration runs over a weekend.
Common mistakes
Migrating between different B1 versions or patch levels, forgetting SP_PostTransactionNotice, testing queries only as a superuser, and leaving Crystal reports on the SQL Server connection. Another frequent issue is integration code that still sets the SQL Server type, so connections fail after cut over.
Frequently Asked Questions
How do I migrate SAP Business One from SQL Server to HANA?
Install SAP Business One, version for SAP HANA at the same version and patch as the source, rewrite custom SQL, stored procedures and reports for HANA, run the migration tool from the HANA Administrator's Guide per company database, then validate counts, balances and integrations before cut over.
Do I need to rewrite SP_TransactionNotification for HANA?
Yes. On HANA SBO_SP_TransactionNotification is a SQLScript procedure, so T-SQL code cannot be copied over: variables use := and a colon prefix, and the result is returned with select :error, :error_message FROM DUMMY. Rewrite the logic, test each validation and also convert SBO_SP_PostTransactionNotice if you use it.
Do Crystal reports work after the migration?
They work after you change the data source to the HANA ODBC driver and convert any SQL commands inside the report to HANA syntax. Test each report, since joins and functions in commands often need changes.
What changes in DI API code?
Set the server type to BoDataServerTypes.dst_HANADB and use the HANA server and port in the connection settings. Any direct SQL your code runs through Recordset objects must also use HANA syntax with quoted identifiers.
If you want your team to ask SAP Business One on HANA questions in plain English with data that never leaves your server, we can set up that private AI layer after the migration.
Related Tools
SAP Business One Version and Feature Pack Upgrade Checklist
Plan, back up, upgrade server components, company databases and clients, then test: a step list for SAP Business One 10.0 feature pack upgrades.
Developer ToolsSAP B1 SQL Query Generator (OITM, ORDR, RDR1)
Fill in a few filters and get a read-only SQL query over OITM, ORDR and RDR1 to paste into the SAP B1 Query Manager.
SAPSAP Business One Database Tables Reference
Searchable lookup of the core SAP Business One tables, with the matching row table and what each one stores.
Developer ToolsSAP Business One DI API Sales Order Code Generator (C#)
Fill in connection and order details to get a C# DI API skeleton that connects, adds a sales order and reports errors.
More SAP tools
See all- SAP B1 User Permission Matrix Worksheet
- SAP B1 Period End Close Checklist
- SAP B1 Approval Procedure Template
- SAP B1 Business Partner Master Data Request Form
- SAP Business One User Acceptance Test Script Template
- SAP Business One Data Migration Mapping Worksheet
- SAP Business One User-Defined Fields and Tables Register
- SAP Business One Document Object Type Codes
- SAP Business One User-Defined Field Planning Worksheet
Keep exploring
Free tools
- SAP Business One HANA Server Memory Sizing CalculatorEstimate the RAM a SAP Business One version for SAP HANA server needs from company database sizes, growth, compression and concurrent users.
- SAP Business One AR Aging SQL Query Generator (SQL Server and HANA)Generate a customer receivables aging query for SAP Business One Query Manager, with your own bucket days and aging basis, in SQL Server and HANA syntax.
- SAP Business One T-SQL to HANA SQL Query Conversion ReferenceSide-by-side lookup of the T-SQL constructs used in SAP Business One queries and formatted searches, their HANA SQL equivalents, a B1 example and the gotcha that breaks the migrated query.
ERP fixes and how-tos
- Private AI for SAP Business One: Service Layer, a read replica and a local modelAdd a private AI assistant to SAP Business One: Service Layer reads, SQL Server or HANA replica, document index, local LLM, permissions and approvals.
- What is the latest version of SAP Business One, and how to plan an upgradeHow SAP Business One is versioned (10.0 plus quarterly feature packages), how to find the current one, and a practical upgrade checklist for on-prem setups.
- SAP Business One Query: Released Production Orders with Component ShortagesReady-to-run SAP Business One queries on OWOR, WOR1 and OITW to list released production orders with missing components, for SQL Server and HANA.
Runs with your ERP
- Spreadsheet Server with SAP Business One: live Excel reporting on inventory, sales and costHow insightsoftware Spreadsheet Server gives Excel live drill-down on SAP Business One inventory, sales and production cost data, with setup and pitfalls.
- i95Dev Connect for Adobe Commerce and SAP Business One: store syncHow the i95Dev connector syncs orders, customers, products and inventory between Adobe Commerce (Magento) and SAP Business One on SQL or HANA, and what breaks.
- TrueCommerce EDI with SAP Business OneHow the TrueCommerce EDI add-on automates sales orders, 940/945 warehouse documents, ASNs and invoices in SAP Business One, with setup, pitfalls and AI.
AI on your ERP
- AI for SAP Business One, Without Sending Your Books to a Public APIAdd AI to SAP Business One without sending customer data or financials to a public API. Service Layer and DI API integration, sized for an SMB budget.
- AI for SAP Business One Inventory: Stock, Batches, Bins and ValuationPrivate AI over SAP Business One inventory: OITW stock, batches, serials, bins and valuation. Answers grounded in live data via Service Layer or SQL views.
Integrations
- How to connect Power BI to SAP Business OneConnect Power BI to SAP Business One: SQL Server or HANA direct, Service Layer OData, gateway setup, key manufacturing dashboards and natural-language Q&A.
- How to build an MCP server for SAP Business OneBuild a Model Context Protocol server for SAP Business One: tools to expose, Service Layer auth, stdio versus HTTP, permission scoping and audit logging.