The short version: the tables and rows move with a Power Platform dataflow, and that part is quick. Stored procedures, triggers, views, jobs and the front end never move; they are rebuilt as a Power App and Power Automate flows, and that rebuild is where the money and the weeks go. Where the data lands sets the licence bill: SharePoint lists cost nothing on top of Microsoft 365, Dataverse is NZ$32.40 per user per month. For a firm under 20 staff the range is $4,000 to $18,000, and logic hidden in stored procedures moves a job up that range faster than table count does.
What it costs and how long it takes
| Line | Into SharePoint lists | Into Dataverse |
|---|---|---|
| Build, data migration included (fixed price) | $4,000 to $10,000 | $8,000 to $18,000 |
| Typical time | 2 to 5 weeks | 3 to 8 weeks |
| Licence per user per month, before GST | $0 on top of Microsoft 365 | NZ$32.40 (Power Apps Premium, paid yearly) |
| Ten users, per year | $0 | NZ$3,888.00 |
| Best for | A few flat tables, under about 20,000 rows each, one or two editors, no money on the records | Related tables, money or hours on the records, several editors daily, an audit trail |
The build bands are my fixed prices for firms under 20 staff, from the services page, and they include the data migration, validation and cut-over. A SQL Server system sits toward the top of each band because of the stored procedures and integrations. Licences are Microsoft's NZ list price for Power Apps Premium, before GST, paid yearly, on the Power Platform pricing in NZ page. The wider decision, with what transfers and what breaks, is in moving a SQL Server database into Microsoft 365, and the fixed-price service is on the SQL and Access migration page.
The method, step by step
- Inventory the database. Tables and row counts, relationships, stored procedures, triggers, views, scheduled jobs, and everything outside that connects to it: a label printer, an ODBC link from Excel, a Xero sync. The last list is the one people forget.
- Pick the home. Dataverse, SharePoint lists, or leave the database where it is and put an app on top. Use the table above and a real licence number against your real headcount. The honest test is money: if an accountant reconciles anything in the database, it goes to Dataverse.
- Build the Dataverse tables first. Names, relationships, an autonumber column seeded to continue your job or invoice sequence, and an alternate key for every unique index.
- Install the on-premises data gateway on a machine that can reach the SQL Server, if the server is on your network. It makes outbound connections only, so no inbound ports are opened.
- Run a dataflow into a dev environment. SQL Server as the source, Power Query cleaning steps (trim, fix dates, drop dead columns), each query mapped to its table. Read every row the validator rejects and fix it in SQL, not in the target. Load parent tables before child tables so lookups resolve.
- Rebuild the front end and the logic as a Power App and flows, with the old app as the spec. I sit with the two people who use it most.
- Cut over on a Friday. Freeze the source, run the final load into the live environment, reconcile row counts and a handful of known records, go live Monday. The old database stays intact and switched off for 60 days.
- Hand over source, credentials and a written map of what lives where.
The mechanics for all four source systems are on the Power Platform migration hub, and the 38-point SQL migration checklist is the working document I use. It is free and works with whoever you hire.
SQL Server data types that break, and the fix
| SQL Server | Dataverse | What happens | What to do first |
|---|---|---|---|
| float, real | Floating Point Number | Up to five decimal places; anything past that is rounded | Change to decimal (up to ten places) at the source if precision matters |
| money, smallmoney | Currency | One base currency per environment, assumed by the load | Confirm the base currency is NZD before the first load |
| nvarchar(n), varchar(n) | Text | 4,000-character cap | Find the longest value in each column before you map it |
| nvarchar(max), text | Multiline Text | Up to 1,048,576 characters | Anything longer needs a file column |
| datetime, datetime2 | Date and Time | User-local or time-zone independent, chosen per column; get it wrong and every date shifts by hours | Decide per column, then test a known record across a daylight-saving change |
| identity column | Autonumber | Dataverse keys rows with a GUID; old integer IDs arrive as a plain number | Set the autonumber seed so the sequence continues |
| foreign key | Lookup (relationship) | The dataflow matches on an alternate key, not your old integer | Define the key first, load parents before children |
| varbinary, image | File or Image | Not loaded by a dataflow | Export the files, store them in a file column or SharePoint, keep the link |
| unique index | Alternate key | Not migrated | Note every one, recreate by hand |
| computed column | Formula or calculated column | The value loads, the formula does not | Recreate the formula in Dataverse |
The full map, with the Access column beside it, is on the migration hub. Limits are Dataverse's as documented on Microsoft Learn, checked September 2026. Rows that fail validation are worth reading one at a time; a rejected row is usually a real data problem that has been hiding in the old system for years.
What never moves
- Stored procedures and triggers. Dataverse does not run T-SQL. Each one that matters becomes a flow, a business rule, a formula column or a line in the app. In a small-firm system fewer than ten matter, and half exist to work around a limit of the old front end.
- Views and reports. SQL views become Dataverse views; heavy reports become Power BI, which is its own licence line.
- Scheduled jobs. SQL Agent jobs become scheduled flows, and a flow that touches SQL Server is premium.
- The front end. An Access form, a Windows app or a classic ASP page is rebuilt as a Power App. The rebuilt version runs on a phone and needs no server.
What Dataverse capacity costs
| Users on Power Apps Premium | Database capacity included | Cost of each GB over that |
|---|---|---|
| 5 | 11.25 GB | NZ$64.70 a month |
| 10 | 12.5 GB | NZ$64.70 a month |
| 20 | 15 GB | NZ$64.70 a month |
The tenant starts with 10 GB of database capacity, and each Power Apps Premium licence adds 250 MB. Extra database capacity is NZ$64.70 per GB per month. Worked example: 10 users have 12.5 GB; if 25 GB of data genuinely had to sit in database capacity, the 12.5 GB over would cost NZ$808.75 a month. That almost never happens, because capacity holds rows, not the size of your SQL backup file. As a working estimate, a plain row with a few dozen columns is one to two kilobytes, so 1 GB is roughly half a million to a million rows. Blobs go to file capacity (20 GB plus 2 GB per licence), which is bigger and cheaper to extend. The detail, and what fills capacity when rows do not, is on Dataverse pricing in NZ.
The licence line, in NZD
| Users | SharePoint lists | Dataverse, Power Apps Premium |
|---|---|---|
| 5 | $0 | NZ$162.00 a month |
| 10 | $0 | NZ$324.00 a month |
| 20 | $0 | NZ$648.00 a month |
Power Apps Premium at NZ$32.40 per user per month, before GST, paid yearly. The totals are that price multiplied out. A Power App on SharePoint lists uses the Microsoft 365 licence you already have, provided it stays on standard connectors; the moment it or a flow reads SQL Server it becomes premium. Only people who open the app or own a flow need a licence, so eight staff who just receive an email from a flow need nothing extra.
If the goal is that staff notice nothing on Monday, read how a like-for-like copy works before you scope it.
When I would say stay on SQL Server
- The value is in the stored procedures. If the database does the work, keep it and put the app on top through the gateway. Every app user then needs Power Apps Premium at NZ$32.40, the same as Dataverse, and you still patch and back up the server.
- A vendor product sits on it and is still supported. Migrating breaks the product. Ask the vendor for their hosted version.
- People write T-SQL reports against it. Dataverse has views, Power BI and Excel export, but no ad-hoc T-SQL.
- The server is fine and the complaint is the app. Build the front end and leave the database alone.
- You want SQL without the server. Azure SQL is the cloud version of the same database. The comparison, with costs, is in Dataverse or Azure SQL for a small NZ business.
- One editor and a few hundred rows. A SharePoint list or an Excel table in Teams, no project. If the server is also running out of road, the dates are on the SQL Server 2016 end-of-support page.
Change log
| Date | Change | What it means |
|---|---|---|
| 30 September 2026 | Page created. NZ$32.40 is the September 2026 en-nz Power Apps Premium list price and NZ$64.70 the Dataverse capacity add-on, both from the price ledger; type limits re-read on Microsoft Learn | Cost bands match the services page and the SQL Server guide |
The weeks by source and destination, where they go and what stretches them: how long moving off an old database takes.
Common questions
How much does it cost to migrate SQL Server to Dataverse in NZ?
For a firm under 20 staff, $8,000 to $18,000 into Dataverse over three to eight weeks, or $4,000 to $10,000 into SharePoint lists over two to five weeks, at a fixed price with the data migration included. Dataverse then costs NZ$32.40 per user per month on Microsoft's NZ price list (Power Apps Premium, paid yearly, before GST); SharePoint lists cost nothing on top of Microsoft 365.
Can I move SQL Server data to Dataverse myself?
The data, often yes. A Power Platform dataflow reads SQL Server, through the on-premises data gateway if the server is yours, and loads Dataverse tables. The person running it needs a Power Apps Premium licence because SQL Server is a premium connector. The dataflow does not move stored procedures, triggers, views, jobs or the front end, and those are where the time goes.
What does Dataverse storage cost after the migration?
Nothing until the included capacity runs out. The tenant gets 10 GB of database space plus 250 MB for each Power Apps Premium licence, so 10 users get 12.5 GB. Extra database capacity is NZ$64.70 per GB per month. Most firms under 20 staff rarely buy any, because a migrated small-firm database is usually well under 1 GB of rows.
Do stored procedures and triggers move to Dataverse?
No. Dataverse does not run T-SQL. Each stored procedure or trigger that matters becomes a Power Automate flow, a business rule, a formula column or logic in the app. In a small-firm system fewer than ten usually matter, and inventorying them before quoting is what keeps the price honest.
Should I keep SQL Server or move to Azure SQL instead?
Keep SQL Server, or move it to Azure SQL, when the value of the system is in the stored procedures, a vendor product needs SQL, or people write T-SQL reports. A Power App on top still needs Power Apps Premium at NZ$32.40 per user per month, because the SQL Server connector is premium. Move to Dataverse when the value is in the data and the forms and nobody wants to own a server.
How long does a SQL Server to Dataverse migration take?
Three to eight weeks for a firm under 20 staff. The low end is a database of a dozen tables with a few stored procedures; the high end is many related tables, logic living in the database and integrations nobody documented. The first load usually runs in a day, and the weeks go on rebuilding the front end and the logic.
Method, and citing this page
The NZD licence and capacity figures are Microsoft's September 2026 en-nz list prices, held in the price ledger; nothing is converted. The build bands are my fixed prices and match the services page. The data-type behaviour comes from Microsoft Learn's Dataverse data types page and the method from the migration hub. Rows per gigabyte is a working estimate and labelled as one. The page is re-checked each quarter and the change log records anything that moved. Corrections by email are welcome and get a dated note.
Cite it freely. Quote any figure with a link back:
Moving SQL Server to Dataverse in NZ, Kove, September 2026 check. kove.nz/sql-server-to-dataverse-nz