SQL Server 儲存字元數較大欄位的問題

2021-09-08 18:54:26 字數 2891 閱讀 8862

sql server 2000專門提供了處理text,ntext,image欄位的函式,他們是:

textptr

textvalid

readtext

updatetext

writetext

declare @val varbinary(16)

select @val = textptr(欄位名) from 表名 where 條件

writetext 表名.欄位名 @val '您的長字串,一般都是大於8000的,不大於也行'

說明:第二行加上條件 可以定位當前操作的是哪一條記錄。

declare @val varbinary(16)

select @val = textptr(欄位名) from 表名 where 條件

updatetext 表名.欄位名 @val 0 null '您的長字串,一般都是大於8000的,不大於也行'

--說明:第二行加上條件 可以定位當前操作的是哪一條記錄,第三條裡的0是說這個欄位裡從第0個字元開始,null表示,從0開始到這個字段最後的所有字元刪掉

declare @val varbinary(16)

select @val = textptr(欄位名) from 表名 where 條件

readtext 表名.欄位名 @val 0 40000

--說明:第二行加上條件 可以定位當前操作的是哪一條記錄,第三行後兩個引數意為:從第0個字元開始,讀40000個字元。

--您可以覺得這個函式完全沒哈用處,是呀,我就感覺他沒用,讀取嘛,怎麼讀都可以讀出來,所以直接讀就可以了。

更新現有 text、ntext 或 image 字段。使用 updatetext 在適當的位置更改 text、ntext 或 image 列的一部分。使用 writetext 來更新和替換整個 text、ntext 或 image 字段。

語法

updatetext

[ with log ]

[ inserted_data| ]

引數

table_name.dest_column_name

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

dest_text_ptr

指向要更新的 text、ntext 或 image 資料的文字指標的值(由 textptr 函式返回)。dest_text_ptr 必須為 binary(16)。

insert_offset

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

delete_length

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

with log

在 microsoft? sql server? 2000 中被忽略。在該版本中,日誌記錄由資料庫的有效恢復模型決定。

inserted_data

是 要插入到現有 text、ntext 或 image 列 insert_offset 位置的資料。這是單個 char、nchar、varchar、nvarchar、binary、varbinary、text、ntext 或 image 值。inserted_data 可以是文字或變數。

table_name.src_column_name

用作插入資料來源的表或 text、ntext 或 image 列的名稱。表名和列名必須符合識別符號的規則。

src_text_ptr

指向作為插入資料來源使用的 text、ntext 或 image 列的文字指標值(由 textptr 函式返回)。

允許對現有的 text、ntext 或 image 列進行無日誌記錄的互動式更新。該語句將徹底重寫受其影響的列中的任何現有資料。writetext 語句不能用在檢視中的 text、ntext 和 image 列上。

語法

writetext

[ with log ]

引數

table.column

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

text_ptr

指 向 text、ntext 或 image 資料的指標的值。text_ptr 的資料型別必須為 binary(16)。若要建立文字指標,請對 text、ntext 或 image 列用非 null 資料執行 insert 或 update 語句。有關建立文字指標的更多資訊,請參見 insert 或 update。

with log

在 microsoft? sql server? 2000 中忽略。日誌記錄由資料庫的實際恢復模型決定。

data

要儲存的實際 text、ntext 或 image 資料。data 可以是字面值,也可以是變數。對於 text、ntext 和 image 資料,可以用 writetext 互動插入的文字的最大長度大約是 120 kb。

SQL SERVER用儲存過程插入大量的資料

sql server儲存過程批量插入資料庫表資料 在做資料庫系統開發時,特別是需要對資料庫操作進行效能測試及優化時,我們就需要在資料庫測試表中插入大量資料以便測試。對於這些資料的插入,這裡通過例項展示如何通過儲存過程進行實現。資料庫表 userinfo 結構如下 createtable dbo us...

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...

SQLSERVER儲存過程

sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...