Andy Dufresne
2019-01-10 17:00:06 UTC
I have a php web application that runs on a SQL Server 2016 database. The database has been upgraded over the years from SQL Server 2005 to SQL Server 2016. Being such an old database it still has some NTEXT columns in various tables.
To convert those NTEXT columns to NVARCHAR(MAX) I ran this query on each table:
alter table tablex alter column columnname nvarchar(max);
where the 'columnname' column in the 'tablex' tab le was a NTEXT column.
That seems to have worked fine on all the tables. Then I came across the following two articles, which seem to say the same thing:
https://www.sqlservergeeks.com/sql-server-why-is-ntext-so-bad-to-give-a-pain/
http://geekswithblogs.net/johnsPerfBlog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx
They recommend running this query
update tablex set columnname = columnname;
after each of the abve alter table queries:
alter table tablex alter column columnname nvarchar(max);
Now those articles are quite old - and were referring to older versions of SQL Server. Do they still apply to SQL Server 2016? Is it still recommended that I run the above 'update tablex' statement after I run the 'alter table' statement?
To convert those NTEXT columns to NVARCHAR(MAX) I ran this query on each table:
alter table tablex alter column columnname nvarchar(max);
where the 'columnname' column in the 'tablex' tab le was a NTEXT column.
That seems to have worked fine on all the tables. Then I came across the following two articles, which seem to say the same thing:
https://www.sqlservergeeks.com/sql-server-why-is-ntext-so-bad-to-give-a-pain/
http://geekswithblogs.net/johnsPerfBlog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx
They recommend running this query
update tablex set columnname = columnname;
after each of the abve alter table queries:
alter table tablex alter column columnname nvarchar(max);
Now those articles are quite old - and were referring to older versions of SQL Server. Do they still apply to SQL Server 2016? Is it still recommended that I run the above 'update tablex' statement after I run the 'alter table' statement?