如何在SQL Server中去除表中不可見(jiàn)字符_Mssql數(shù)據(jù)庫(kù)教程
推薦:解讀在Oracle數(shù)據(jù)庫(kù)中高速導(dǎo)出/導(dǎo)入的方法迄今為止,導(dǎo)出/導(dǎo)入工具集仍是跨多個(gè)平臺(tái)轉(zhuǎn)移數(shù)據(jù)所需勞動(dòng)強(qiáng)度最小的首選實(shí)用工具,盡管人們常常抱怨它速度太慢。導(dǎo)入只是將每條記錄從導(dǎo)出轉(zhuǎn)儲(chǔ)文件中讀出來(lái),然后使用常見(jiàn)的 INSERT INTO 命令將其插入到目標(biāo)表中,因此導(dǎo)入可能是個(gè)很慢的過(guò)程,這一點(diǎn)并不
以下的實(shí)例為去除指定表中數(shù)據(jù)類(lèi)型是VARCHAR,CHAR,NVARCHAR的字段值中的不可見(jiàn)字符。 注釋?zhuān)捍颂幹蝗サ羟昂蟮牟豢梢?jiàn)字符,不包括中間的字符,而且沒(méi)有區(qū)分中文。
在使用前需要指定對(duì)應(yīng)要修改的表名,并且需要在對(duì)應(yīng)數(shù)據(jù)庫(kù)下執(zhí)行;
SET NOCOUNT ON
DECLARE @TblName VARCHAR(100)
DECLARE @UpdateString NVARCHAR(1000)
DECLARE @SelectString NVARCHAR(1000)
DECLARE @COlName VARCHAR(100)
DECLARE @COUNT INT
SET @TblName = 'YOURTABLENAME'--指定想要修改的表名
--定義游標(biāo)取出指定表內(nèi)的數(shù)據(jù)類(lèi)型是VARCHAR,char,nVARCHAR的字段名稱(chēng)
DECLARE cur_ColName CURSOR
FOR
SELECT col.name
FROM syscolumns AS col
inner join sysobjects AS obj ON col.ID = obj.ID
INNER join systypes AS typ ON col.xtype = typ.xtype
WHERE obj.xtype ='U'
AND obj.name = @TblName
AND typ.name IN ('VARCHAR','CHAR','NVARCHAR','NCHAR')
FOR READ ONLY
--打開(kāi)游標(biāo)
OPEN cur_ColName
FETCH NEXT FROM cur_ColName INTO @ColName
IF @@FETCH_STATUS<>0
BEGIN
PRINT '沒(méi)有對(duì)應(yīng)表或字段,
'PRINT '請(qǐng)確認(rèn)當(dāng)前數(shù)據(jù)庫(kù)內(nèi)有' @TblName '表,
' PRINT '或該表內(nèi)有VARCHAR、CHAR、NVARCHAR、NCHAR類(lèi)型的字段!
' GOTO LABCLOSE
END--循環(huán)修改
WHILE @@FETCH_STATUS=0
BEGIN
--拼修改字符串
--去掉左邊的不可見(jiàn)字符
SET @SelectString = 'SELECT @COU=COUNT(*)
FROM ' @TblName '
WHERE ASCII(LEFT(' @ColName ',1))<32
AND ' @ColName ' IS NOT NULL'
EXEC sp_executesql @SelectString,N'@COU INT OUTPUT',
@COUNT OUTPUT WHILE @COUNT>0
BEGIN
SET @UpdateString =
' UPDATE ' @TblName
' SET ' @ColName '=RIGHT(' @ColName ',LEN(' @ColName ')-1)
WHERE ASCII(LEFT(' @ColName ',1))<32
AND ' @ColName ' IS NOT NULL'
EXEC sp_executesql @UpdateString
EXEC sp_executesql @SelectString,N'@COU INT OUTPUT',@COUNT OUTPUT
END
--去掉右邊的不可見(jiàn)字符 SET @SelectString = 'SELECT @COU=COUNT(*)
FROM ' @TblName '
WHERE ASCII(RIGHT(' @ColName ',1))<32
AND ' @ColName ' IS NOT NULL'
EXEC sp_executesql @SelectString,N'@COU INT OUTPUT',
@COUNT OUTPUT WHILE @COUNT>0
BEGIN
SET @UpdateString = ' UPDATE ' @TblName ' SET '
@ColName '=LEFT(' @ColName ',LEN(' @ColName ')-1)
WHERE ASCII(RIGHT(' @ColName ',1))<32
AND ' @ColName ' IS NOT NULL'
EXEC SP_EXECUTESQL @UpdateString
EXEC sp_executesql @SelectString,N'@COU INT OUTPUT',
@COUNT OUTPUT
END
PRINT 'column: ' @ColName '---ok'
FETCH NEXT FROM cur_ColName INTO @ColName
END
--關(guān)閉、釋放游標(biāo)LABCLOSE: CLOSE cur_ColName
DEALLOCATE cur_ColName
分享:解讀數(shù)據(jù)庫(kù)自動(dòng)化技術(shù)彌補(bǔ)數(shù)據(jù)庫(kù)DBA短缺難題全球數(shù)據(jù)量的瘋狂增長(zhǎng),使得市場(chǎng)對(duì)資深數(shù)據(jù)庫(kù)管理員的需求也節(jié)節(jié)攀升。據(jù)統(tǒng)計(jì),一直到2016美國(guó)IT市場(chǎng)對(duì)數(shù)據(jù)庫(kù)管理員的需求量增長(zhǎng)都將會(huì)超過(guò)所有其他職業(yè)。數(shù)據(jù)庫(kù)管理員具備一整套專(zhuān)業(yè)性非常強(qiáng)的技術(shù)技能,因此其在數(shù)據(jù)中心里的地位是最難以替代的。 數(shù)據(jù)庫(kù)自
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類(lèi)似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 用JavaBean編寫(xiě)SQL Server數(shù)據(jù)庫(kù)連接類(lèi)
- 解讀在SQL Server中使用索引的技巧
- SQL Server的基本功能性語(yǔ)句介紹
- 教你2種刪除SQL SERVER數(shù)據(jù)庫(kù)日志方法
- 高效的SQLSERVER分頁(yè)查詢(xún)(推薦)
- 解析Oracle到SQL Server主鍵遷移
- 在SQL Server中實(shí)現(xiàn)最短路徑搜索的解決方法
- SQL Server COALESCE()函數(shù)的創(chuàng)新應(yīng)用
- sql server 2005用戶(hù)權(quán)限設(shè)置深入分析
- SQL Server查詢(xún)語(yǔ)句的使用
猜你也喜歡看這些
- 解析mysql中:單表distinct、多表group by查詢(xún)?nèi)コ貜?fù)記錄
- Mysql兩種情況下更新字段中部分?jǐn)?shù)據(jù)的方法
- MSSQL清空日志刪除日志文件
- MySQL筆記之索引的使用
- 使用MySQL Slow Log來(lái)解決MySQL CPU占用高的問(wèn)題
- 解析mysql與Oracle update的區(qū)別
- MySQL筆記之修改數(shù)據(jù)的解決方法
- mysql 將列值轉(zhuǎn)變?yōu)榱械姆椒?/a>
- 深入理解SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
- Mysql中文亂碼以及導(dǎo)出為sql語(yǔ)句和Excel問(wèn)題解決方法[圖文]
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-如何在SQL Server中去除表中不可見(jiàn)字符
。