永別了,Text與NText

來源:互聯網
上載者:User

      曾幾何時剛進入這個行業的時候,那時候就是用ASP做網站,對於新聞內容,我們用得最多的就是Text與NText,從SQL97到SQL2000,那時候我一直用它。漸漸的,不再做網站了,一直都是做的資訊系統,Text和Ntext用得比較少了。

      隨便SQL2005的出現,Nvarchar(max)走進了程式生活。記得剛出來的時候,微軟很提倡使用它欄位類型,那時候,覺得也無所謂。感覺上一樣使用。

      但是今天發生了一件很奇怪的事,我不知道是因為微軟的BUG還是它的特性。

      目前設計的一個系統,需要一個欄位存放大量的Guid形式的字串,如“10a9bc89-398b-47c3-b028-44ead644acb4”。

      我們知道Ntext欄位類型,在檢查的時候比較麻煩,必須這樣寫CAST(Taker AS NVARCHAR) = '10a9bc89-398b-47c3-b028-44ead644acb4'

      否則會報“資料類型text 和varchar 在equal to 運算子中不相容”。

      例如SQL文

      

select * from sprs_T_MESSAGENOTICE where MessageType='1' AND Taker = '10a9bc89-398b-47c3-b028-44ead644acb4'

這條記錄其實是存在的,可是如果Taker是Ntext,它就查不到資料,如果我10a9bc89-398b-47c3-b028-44ead644acb4換成其它字串,如“1”,它就查出來了

存放Guid形式的資料,它就是不行!

也不知道為什麼會這樣,不知道是不是微軟的BUG,還是它的內部特性。咱也不深究了,沒辦法只能改用Nvarchar(max)了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.