【发布时间】:2016-06-28 17:34:43
【问题描述】:
我的数据库中有两列在 SQL Server 2008R2(10.50.4000) 上运行,它们是 varchar(max),但在 SQL Server Management Studio (11.0.5343.0) 中,它们在资源管理器窗口中显示为文本。
当我运行查询时
SELECT DISTINCT
J.TICKETID,
J.jobNotes,
J.jobScopeOfWork
FROM
sysdba.ALX_JOB J
JOIN
sysdba.ALX_JOBTYPE T ON J.JOBTYPEID = T.ALX_JOBTYPEID
JOIN
sysdba.ALX_JOBSTATUS S ON J.STATUSID = S.ID
JOIN
sysdba.ADDRESS A ON J.ADDRESSID = A.ADDRESSID
LEFT OUTER JOIN
sysdba.ALX_JOB_JOBUSERS ju ON j.TICKETID = ju.ticketId
WHERE
(ju.ALX_USERID = '12345' OR j.UserID = 12345)
我得到了错误
消息 421,第 16 级,状态 1,第 1 行
文本数据类型无法选择为 DISTINCT,因为它不可比较。消息 421,第 16 级,状态 1,第 1 行
文本数据类型无法选择为 DISTINCT,因为它不可比较。
兼容性选项设置如下
【问题讨论】:
-
底层 SQL Server 数据库引擎是什么版本? 管理 GUI 的版本无关紧要 - 它是定义哪些数据类型的 引擎有(或没有)。在您的数据库上运行
SELECT @@VERSION并返回报告。还要检查数据库的兼容级别(在对象资源管理器中,右键单击您的数据库 > 属性 > 选项 > 兼容级别) -
SQL Server 2008R2(10.50.4000)
-
还有兼容级别??如果它设置为“80”(SQL Server 2000) - 你不能使用
Varchar(max)...... -
这就是它的设置,一定是它,谢谢
标签: sql sql-server tsql ssms