SQL Server 儲存字元數大於8000的問題

來源:互聯網
上載者:User
文章目錄
  • 修改欄位UPDATETEXT:
  • 讀欄位READTEXT:

SQL Server 2000專門提供了處理text,ntext,image欄位的函數,他們是:

TEXTPTR
TEXTVALID
READTEXT
UPDATETEXT
WRITETEXT

一般作用方法:

寫欄位WRITETEXT :

DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(欄位名) FROM 表名 where 條件
WRITETEXT 表名.欄位名 @val '您的長字串,一般都是大於8000的,不大於也行'
--說明:第二行加上條件 可以定位當前操作的是哪一條記錄。

修改欄位UPDATETEXT:

DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(欄位名) FROM 表名 where 條件
UPDATETEXT 表名.欄位名 @val 0 NULL '您的長字串,一般都是大於8000的,不大於也行'
--說明:第二行加上條件 可以定位當前操作的是哪一條記錄,第三條裡的0是說這個欄位裡從第0個字元開始,NULL表示,從0開始到這個欄位最後的所有字元刪掉

讀欄位READTEXT:

DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(欄位名) FROM 表名 where 條件
READTEXT 表名.欄位名 @val 0 40000
--說明:第二行加上條件 可以定位當前操作的是哪一條記錄,第三行後兩個參數意為:從第0個字元開始,讀40000個字元。
--您可以覺得這個函數完全沒哈用處,是呀,我就感覺他沒用,讀取嘛,怎麼讀都可以讀出來,所以直接讀就可以了。

原創作者:柳永法(yongfa365)'Blog

 

 

官方說明:

 

UPDATETEXT

更新現有 textntextimage 欄位。使用 UPDATETEXT 在適當的位置更改 textntextimage 列的一部分。使用 WRITETEXT 來更新和替換整個 textntextimage 欄位。

文法

UPDATETEXT { table_name.dest_column_name dest_text_ptr }
    
{ NULL | insert_offset }
    { NULL | delete_length }
    [ WITH LOG ]
    [ inserted_data
        | { table_name.src_column_name src_text_ptr } ]

參數

table_name.dest_column_name

要更新的表和 textntextimage 列的名稱。表名和列名必須符合標識符的規則。有關更多資訊,請參見使用標識符。指定資料庫名和所有者名是可選的。

dest_text_ptr

指向要更新的 textntextimage 資料的文本指標的值(由 TEXTPTR 函數返回)。dest_text_ptr 必須為 binary(16)

insert_offset

以零為基的更新起始位置。對於 textimage 列,insert_offset 是在插入新資料前從現有列的起點開始要跳過的位元組數對於 ntext 列,insert_offset 是字元個數(每個 ntext 字元佔用 2 個位元組)。開始於這個以零為基的起始點的現有 textntext image 資料向右移,為新資料騰出空間。值為 0 表示將新資料插入到現有位置的開始處。值為 NULL 則將新資料追加到現有資料值中。

delete_length

是從 insert_offset 位置開始的、要從現有 textntext image 列中刪除的資料長度。delete_length 值對於 textimage 列用位元組指定,對於 ntext 列用字元指定。每個 ntext 字元佔用 2 個位元組。值為 0 表示不刪除資料。值為 NULL 則刪除現有 textimage 列中從 insert_offset 位置開始到末尾的所有資料。

WITH LOG

在 Microsoft SQL Server 2000 中被忽略。在該版本中,日誌記錄由資料庫的有效恢複模型決定。

inserted_data

是要插入到現有 textntext imageinsert_offset 位置的資料。這是單個 charncharvarcharnvarcharbinaryvarbinarytextntextimage 值。inserted_data 可以是文字或變數。

table_name.src_column_name

用作插入資料來源的表或 textntext image 列的名稱。表名和列名必須符合標識符的規則。

src_text_ptr

指向作為插入資料來源使用的 textntext image 列的文本指標值(由 TEXTPTR 函數返回)。

 

WRITETEXT

允許對現有的 textntextimage 列進行無日誌記錄的互動式更新。該語句將徹底重寫受其影響的列中的任何現有資料。WRITETEXT 語句不能用在視圖中的 textntextimage 列上。

文法

WRITETEXT { table.column text_ptr }
    
[ WITH LOG ] { data }

參數

table.column

要更新的表和 textntextimage 列的名稱。表名和列名必須符合標識符的規則。有關更多資訊,請參見使用標識符。指定資料庫名和所有者名是可選的。

text_ptr

指向 textntextimage 資料的指標的值。text_ptr 的資料類型必須為 binary(16)。若要建立文本指標,請對 textntextimage 列用非 NULL 資料執行 INSERT 或 UPDATE 語句。有關建立文本指標的更多資訊,請參見 INSERT 或 UPDATE。

WITH LOG

在 Microsoft SQL Server 2000 中忽略。日誌記錄由資料庫的實際恢複模型決定。

data

要儲存的實際 textntextimage 資料。data 可以是字面值,也可以是變數。對於 textntextimage 資料,可以用 WRITETEXT 互動插入的文本的最大長度大約是 120 KB。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.