TSQLT 单元测试 - 数据类型文本和文本在等于运算符中不兼容
Posted
技术标签:
【中文标题】TSQLT 单元测试 - 数据类型文本和文本在等于运算符中不兼容【英文标题】:TSQLT unit test - The data types text and text are incompatible in the equal to operator 【发布时间】:2012-08-30 09:22:51 【问题描述】:我从 AssertEqualsTable 收到此错误“数据类型文本和文本在等于运算符中不兼容。”
然后
“'TableCompare' 过程试图返回 NULL 状态,这是不允许的。将返回状态 0。”
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';
--部分相关表格信息
CREATE TABLE [dbo].[InvoiceOut](
...
[InsertField] [text] NULL,
[DeductibleText] [text] NULL,
[BarcodeText] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
【问题讨论】:
你不应该仍然使用文本数据类型,它已被弃用。这是您的数据结构的一个问题,需要修复。 你能解释一下为什么它是关键的吗? WHERE clause on SQL Server "Text" data type的可能重复 【参考方案1】:我认为您无法比较文本字段值,这可以解释错误。
此外,不推荐使用 text 数据类型,取而代之的是 varchar(MAX)。
见this
【讨论】:
以上是关于TSQLT 单元测试 - 数据类型文本和文本在等于运算符中不兼容的主要内容,如果未能解决你的问题,请参考以下文章
假设单元格B1为文本100.单元格B2为数值3,则COUNT(B1:B2)等于