IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)MSSQL → 怎樣在SQL Server中去除表中不可見(jiàn)字符

怎樣在SQL Server中去除表中不可見(jiàn)字符

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

以下的實(shí)例為去除指定表中數(shù)據(jù)類型是VARCHAR,CHAR,NVARCHAR的字段值中的不可見(jià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ù)類型是VARCHAR,char,nVARCHAR的字段名稱
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類型的字段!
' 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

關(guān)鍵詞標(biāo)簽:SQLServer

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系

相關(guān)下載

    人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法