MSSQL報錯:參數數據類型 text 關於 replace 函數的參數 1 有效的處理方法。本站提示廣大學習愛好者:(MSSQL報錯:參數數據類型 text 關於 replace 函數的參數 1 有效的處理方法)文章只能為提供參考,不一定能成為您想要的結果。以下是MSSQL報錯:參數數據類型 text 關於 replace 函數的參數 1 有效的處理方法正文
然則我們可以換一種辦法處理這個成績。上面就來剖析下處理方法。
對text或ntext類型的數據在查詢中不克不及停止字符串操作。這時候用得最多的是把text看成varchar(現實內容長度低於8000字節時)或把ntext看成nvarchar(現實內容長度低於4000字節時)來處置。然則如許處置也不長短常妥善究竟假如text字段內容跨越8000了豈不是要被截斷或許疏忽失落。
終究找到了一種辦法處理了”參數數據類型 text 關於 replace 函數的參數 1 有效”的成績。上面用一個例子來講明怎樣處置的。
語法以下:
update table set column=replace(cast(column as varchar(max)),'123′,'abc')
說明:
個中的table 代表表名,column代碼該表中須要調換的列。改語句的感化是把table表中column列中一切湧現123的都給調換為abc。
附:max類型的引見
Microsoft SQL Server 2005 中引入了 max 解釋符。此解釋符加強了 varchar、nvarchar 和 varbinary 數據類型的存儲才能。varchar(max)、nvarchar(max) 和 varbinary(max) 統稱為年夜值數據類型。您可使用年夜值數據類型來存儲最年夜為 2^31-1 個字節的數據。
留意:
當 sp_tableoption 存儲進程的 ‘large value types out of row' 選項設置為 OFF 時,年夜值類型的行內存儲限制為 8000 個字節。當此選項設置為 ON 時,只外行內存儲 16 字節的根。有關具體信息,請參閱 sp_tableoption (Transact-SQL)。
年夜值數據類型外行為上和與之對應的較小的數據類型 varchar、nvarchar 和 varbinary 類似。這類類似使 SQL Server 可以或許更高效地存儲和檢索年夜型字符、Unicode 和二進制數據。
有了年夜值數據類型,應用 SQL Server 的方法是應用晚期版本的 SQL Server 中的 text、ntext 和 image 數據類型所弗成能具有的。例如,在 SQL Server 2005 中,您可以界說能存儲年夜量數據(最多可達 2^31 字節的字符、整數和 Unicode 數據)的變量。有關具體信息,請參閱 Transact-SQL 變量。
下表解釋了年夜值數據類型和 SQL Server 晚期版本中與之對應的數據類型之間的關系。
image
* SQL Server 6.5 版本的客戶端不支撐 ntext 數據類型,是以沒法辨認 nvarchar(max)。
主要提醒:
請應用 varchar(max)、nvarchar(max) 和 varbinary(max) 數據類型,而不要應用 text、ntext 和 image 數據類型。
年夜值數據類型外行為上和與之對應的較小的數據類型 varchar(n)、nvarchar(n) 和 varbinary(n) 雷同。上面引見年夜值數據類型在某些特定情況下的應用:
游標因為可以界說年夜值數據類型變量,即可以將 FETCH 前往的年夜值數據類型列中的數據賦給當地變量。有關具體信息,請參閱 FETCH (Transact-SQL)。 應用年夜值數據類型不影響游標的強迫實行游標類型轉換用法。
成塊更新 UPDATE 語句如今支撐 .WRITE( ) 子句對基本年夜值數據列停止部門更新。這相似於 SQL Server 晚期版本中所支撐的對text、ntext、image 數據類型的文本指針操作、WRITETEXT 和 UPDATETEX。有關具體信息,請參閱 UPDATE (Transact-SQL)。觸發器 支撐對拔出的和刪除的表中的年夜值數據類型列援用上應用 AFTER 觸發器。有關具體信息,請參閱 CREATE TRIGGER (Transact-SQL)。
字符串函數 內置的可操作字符和二進制數據的字符串函數有所加強,可支撐年夜值數據類型的參數。這些函數包含:
COL_LENGTH
CHARINDEX
PATINDEX
LEN
DATALENGTH
SUBSTRING