Hi all,
I've done some searching but not found anything in particular so thought one of you clever people might have done this yourselves and made some notes possibly..
We have some ancient VB legacy apps running on SQL2000 and we intend to go up to SQL2017.
Now I know the compatibility level is going to stop us in our tracks however, all the table creation code and field definitions, along with relationships and indexes are coded within the app itself, i.e. if i want to create a new database for our client, we have a template set of CREATE TABLEs, CREATE INDEXes and relationships etc... so I am happy to export the data from 2000 into a unicode CSV via code.
Then run the create database .net code in SQL2016 so our tables, indexes and relationships are recreated with empty content, then import each table back into 2017, obviously using the new datatype names where they have changed.
At least thats what I have in mind - my issue, is the differences between syntax on SQL commands - we dont use procedures or anything that is tied to SQL Server, <everything> runs from VB6 or VB.NET code via ADODB or OLEDB so the only thing Im looking for (if I am on the right track, that is) is changes to our SQL code itself when doing SELECTs against our own tables, such as
SELECT TOP 10 * FROM MyTable
is probably now SELECT * FROM MyTable LIMIT 10 OFFSET 0
but are there other changes - such as RIGHT JOINS, CAST, CONVERT, CASE WHEN.
We also do not use BLOBS and I know some of our datatypes ARE going to be different, ntext I believe is now nvarchar(max), we dont have to put N' for inserting or update unicode field text data - are there any others - is there a cheat sheet available that someone know about listing all syntax differences. I know I probably wont be able to connect to sql server 2017 via ADO but need to use ODBC which is slower connecting but at least it'll keep us working until we are full OLEDB compatible.
Any thoughts on the above or suggestions that I might have missed?
What I have tried:
not tried it yet! just trying to do a bit of planning