TSQLT unit test - The data types text and text are incompatible in the equal to operator

JDPeckham picture JDPeckham · Sep 5, 2012 · Viewed 12.9k times · Source

I am getting this error from AssertEqualsTable "The data types text and text are incompatible in the equal to operator."

then

"The 'TableCompare' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead."

select   *
    into #Actual
    from [dbo].[InvoiceOut];

--make expected table an empty table of #actual's structure because we truncate so it should be empty.
    SELECT TOP(0) *
    INTO #Expected
    FROM #Actual;

EXEC tSQLt.AssertEqualsTable '#Expected', '#Actual';

--part of the relevant table info

CREATE TABLE [dbo].[InvoiceOut](
...
    [InsertField] [text] NULL,
    [DeductibleText] [text] NULL,
    [BarcodeText] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Answer

Beth picture Beth · Sep 5, 2012

I don't think you can compare text field values, which would explain the error.

Also, the text data type is deprecated in favor of varchar(MAX).

See this