*Argument data type ntext is invalid for argument 1 of left function.
*You will get a similar error for any of the string functions such as: REPLACE, LEFT, RIGHT, LTRIM, RTRIM, etc.
Let's run an example for replicating the error:
--Create temporary table
create table #tblTest(
--Enter sample data
insert into #tblTest
select 1,N'Testing ntext data type';
--Try to run the LEFT function on the ntext column directly
select ID,left(freeTxt,13) as StringSegment
As you can see, the above statement returns the error message and cannot be executed.
Now let's try the following:
select ID,left(cast(freeTxt as varchar(max)),13) as StringSegment
As you can see, the above T-SQL statement was successfully executed and returned the result of the LEFT string function.
The difference of the last statement from the one that returns an error is that now we have used casting prior to using the string function on the ntext column. So, in similar cases, whenever you want to run a string function on a text/ntext column, always cast/convert it first to varchar/nvarchar!!
My Latest Projects:
- DBA Security Advisor: Secure your SQL Server instances against security risks.
- In-Memory OLTP Simulator: Easily benchmark SQL Server's In-Memory OLTP Engine against your custom workload.
- Artemiou SQL Books: Download my latest free books on SQL Server.
- Artemiou Data Tools: See my latest software projects.