2016-06-28 110 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)

將您的兼容級別更改爲更新版本!

相關問題