2016-06-28 112 views
1

我的数据库中有两列在SQL Server 2008R2(10.50.4000)上运行,它们是varchar(max),但在SQL Server Management Studio(11.0)中运行。 5343.0),它们在资源管理器窗口中显示为文本。在SQL Server Management Studio中显示为文本的Varchar(最大)

enter image description here

当我运行一个查询

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,因为它不具有可比性。

Msg 421,Level 16,State 1,Line 1
无法将文本数据类型选为DISTINCT,因为它不具有可比性。

如下

enter image description here

+1

底层SQL Server **数据库引擎是什么版本?管理GUI的版本并不相关 - 它是**引擎**,它定义哪些数据类型存在(或不存在)。在你的数据库上运行'SELECT @@ VERSION'并回报。还要检查数据库的**兼容性级别**(在对象资源管理器中,右键单击数据库>属性>选项>兼容级别) –

+0

SQL Server 2008 R2(10.50.4000) –

+1

并且兼容性级别??如果它设置为“80”(SQL Server 2000) - 你不能使用'Varchar(max)'...... –

回答

3

如果你的数据库引擎 SQL Server 2000上运行的兼容性选项设置,或者如果你的数据库兼容级别被设置为 “80”( SQL Server 2000),那么该数据库还不知道varchar(max)

将您的兼容级别更改为更新版本!

相关问题