MSSQL報(bào)錯(cuò):參數(shù)數(shù)據(jù)類(lèi)型 text 對(duì)于 replace 函數(shù)的參數(shù) 1 無(wú)效的解決辦法
但是我們可以換一種方法解決這個(gè)問(wèn)題。下面就來(lái)分析下解決辦法。
對(duì)text或ntext類(lèi)型的數(shù)據(jù)在查詢(xún)中不能進(jìn)行字符串操作。這時(shí)用得最多的是把text當(dāng)作varchar(實(shí)際內(nèi)容長(zhǎng)度低于8000字節(jié)時(shí))或把ntext當(dāng)作nvarchar(實(shí)際內(nèi)容長(zhǎng)度低于4000字節(jié)時(shí))來(lái)處理。但是這樣處理也不是非常妥當(dāng)畢竟如果text字段內(nèi)容超過(guò)8000了豈不是要被截?cái)嗷蛘吆雎缘簟?BR>最終找到了一種方法解決了”參數(shù)數(shù)據(jù)類(lèi)型 text 對(duì)于 replace 函數(shù)的參數(shù) 1 無(wú)效”的問(wèn)題。下面用一個(gè)例子來(lái)說(shuō)明怎么處理的。
語(yǔ)法如下:
解釋?zhuān)?/STRONG>
其中的table 代表表名,column代碼該表中需要替換的列。改語(yǔ)句的作用是把table表中column列中所有出現(xiàn)123的都給替換為abc。
附:max類(lèi)型的介紹
Microsoft SQL Server 2005 中引入了 max 說(shuō)明符。此說(shuō)明符增強(qiáng)了 varchar、nvarchar 和 varbinary 數(shù)據(jù)類(lèi)型的存儲(chǔ)能力。varchar(max)、nvarchar(max) 和 varbinary(max) 統(tǒng)稱(chēng)為大值數(shù)據(jù)類(lèi)型。您可以使用大值數(shù)據(jù)類(lèi)型來(lái)存儲(chǔ)最大為 2^31-1 個(gè)字節(jié)的數(shù)據(jù)。
注意:
當(dāng) sp_tableoption 存儲(chǔ)過(guò)程的 ‘large value types out of row' 選項(xiàng)設(shè)置為 OFF 時(shí),大值類(lèi)型的行內(nèi)存儲(chǔ)限制為 8000 個(gè)字節(jié)。當(dāng)此選項(xiàng)設(shè)置為 ON 時(shí),只在行內(nèi)存儲(chǔ) 16 字節(jié)的根。有關(guān)詳細(xì)信息,請(qǐng)參閱 sp_tableoption (Transact-SQL)。
大值數(shù)據(jù)類(lèi)型在行為上和與之對(duì)應(yīng)的較小的數(shù)據(jù)類(lèi)型 varchar、nvarchar 和 varbinary 相似。這種相似使 SQL Server 能夠更高效地存儲(chǔ)和檢索大型字符、Unicode 和二進(jìn)制數(shù)據(jù)。
有了大值數(shù)據(jù)類(lèi)型,使用 SQL Server 的方式是使用早期版本的 SQL Server 中的 text、ntext 和 image 數(shù)據(jù)類(lèi)型所不可能具有的。例如,在 SQL Server 2005 中,您可以定義能存儲(chǔ)大量數(shù)據(jù)(最多可達(dá) 2^31 字節(jié)的字符、整數(shù)和 Unicode 數(shù)據(jù))的變量。有關(guān)詳細(xì)信息,請(qǐng)參閱 Transact-SQL 變量。
下表說(shuō)明了大值數(shù)據(jù)類(lèi)型和 SQL Server 早期版本中與之對(duì)應(yīng)的數(shù)據(jù)類(lèi)型之間的關(guān)系。
大值數(shù)據(jù)類(lèi)型 | 早期版本中的 LOB |
---|---|
varchar(max) | text* |
nvarchar(max) | ntext* |
varbinary(max) |
image |
* SQL Server 6.5 版本的客戶端不支持 ntext 數(shù)據(jù)類(lèi)型,因此無(wú)法識(shí)別 nvarchar(max)。
重要提示:
請(qǐng)使用 varchar(max)、nvarchar(max) 和 varbinary(max) 數(shù)據(jù)類(lèi)型,而不要使用 text、ntext 和 image 數(shù)據(jù)類(lèi)型。
大值數(shù)據(jù)類(lèi)型在行為上和與之對(duì)應(yīng)的較小的數(shù)據(jù)類(lèi)型 varchar(n)、nvarchar(n) 和 varbinary(n) 相同。下面介紹大值數(shù)據(jù)類(lèi)型在某些特定情形下的使用:
游標(biāo)由于可以定義大值數(shù)據(jù)類(lèi)型變量,便可以將 FETCH 返回的大值數(shù)據(jù)類(lèi)型列中的數(shù)據(jù)賦給本地變量。有關(guān)詳細(xì)信息,請(qǐng)參閱 FETCH (Transact-SQL)。 使用大值數(shù)據(jù)類(lèi)型不影響游標(biāo)的強(qiáng)制實(shí)施游標(biāo)類(lèi)型轉(zhuǎn)換用法。
成塊更新 UPDATE 語(yǔ)句現(xiàn)在支持 .WRITE( ) 子句對(duì)基礎(chǔ)大值數(shù)據(jù)列進(jìn)行部分更新。這類(lèi)似于 SQL Server 早期版本中所支持的對(duì)text、ntext、image 數(shù)據(jù)類(lèi)型的文本指針操作、WRITETEXT 和 UPDATETEX。有關(guān)詳細(xì)信息,請(qǐng)參閱 UPDATE (Transact-SQL)。觸發(fā)器 支持對(duì)插入的和刪除的表中的大值數(shù)據(jù)類(lèi)型列引用上使用 AFTER 觸發(fā)器。有關(guān)詳細(xì)信息,請(qǐng)參閱 CREATE TRIGGER (Transact-SQL)。
字符串函數(shù) 內(nèi)置的可操作字符和二進(jìn)制數(shù)據(jù)的字符串函數(shù)有所增強(qiáng),可支持大值數(shù)據(jù)類(lèi)型的參數(shù)。這些函數(shù)包括:
CHARINDEX
PATINDEX
LEN
DATALENGTH
SUBSTRING
相關(guān)文章
啟動(dòng)sqlserver服務(wù)的bat腳本分享
這篇文章主要介紹了啟動(dòng)sqlserver服務(wù)的bat腳本分享,本文直接給出腳本代碼,需要的朋友可以參考下2015-02-02sql 判斷數(shù)據(jù)庫(kù),表,存儲(chǔ)過(guò)程等是否存在的代碼
sql下用了判斷各種資源是否存在的代碼,很實(shí)用。需要的朋友可以參考下。2009-12-12sqlserver bcp(數(shù)據(jù)導(dǎo)入導(dǎo)出工具)一般用法與命令詳解
bcp是SQL Server中負(fù)責(zé)導(dǎo)入導(dǎo)出數(shù)據(jù)的一個(gè)命令行工具,它是基于DB-Library的,并且能以并行的方式高效地導(dǎo)入導(dǎo)出大批量的數(shù)據(jù)2012-07-07數(shù)據(jù)庫(kù)中identity字段不必是系統(tǒng)產(chǎn)生的唯一值 性能優(yōu)化方法(新招)
具有identity特性的字段,其值是系統(tǒng)產(chǎn)生的,自動(dòng)增加的,所以,一般把這個(gè)用在一個(gè)表的主鍵上。2011-09-09SQLServer 數(shù)據(jù)庫(kù)故障修復(fù)頂級(jí)技巧之一
SQL Server 2005 和 2008 有幾個(gè)關(guān)于高可用性的選項(xiàng),如日志傳輸、副本和數(shù)據(jù)庫(kù)鏡像。2010-04-04C#連接Excel2003和Excel2007以上版本做數(shù)據(jù)庫(kù)的連接字符串
C#連接Excel2003和Excel2007以上版本做數(shù)據(jù)庫(kù)的連接字符串具體如下,需要的朋友可以參考下2013-11-11從兩種SQL表連接寫(xiě)法來(lái)了解過(guò)去
如果想要優(yōu)雅而易于維護(hù)且不容易寫(xiě)錯(cuò)的代碼,當(dāng)然用高標(biāo)準(zhǔn)的第二種方法。 如果必要考慮風(fēng)險(xiǎn)這個(gè)因素,比如涉及到多種平臺(tái)的遷移或者整合,你應(yīng)該用第一種,起碼在兩個(gè)表的情況下他還是比較安全的。2009-08-08sql server動(dòng)態(tài)存儲(chǔ)過(guò)程按日期保存數(shù)據(jù)示例
,在sql server存儲(chǔ)過(guò)程中進(jìn)行日期計(jì)算,按日期建表效率最高,下面就公司項(xiàng)目的部分動(dòng)態(tài)存儲(chǔ)過(guò)程粘貼出來(lái)2014-08-08安裝sql server 2008 management提示已安裝 SQL Server 2005 Express的解決
SQL Server 2005 Express 工具不是sql server 2005 management,不用卸載sql server 2005 management,用一個(gè)小技巧就行2013-07-07