国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

如何在SQL Server中去除表中不可見字符

2024-08-31 00:46:21
字體:
來源:轉載
供稿:網友

以下的實例為去除指定表中數據類型是VARCHAR,CHAR,NVARCHAR的字段值中的不可見字符。 注釋:此處只去掉前后的不可見字符,不包括中間的字符,而且沒有區分中文。

在使用前需要指定對應要修改的表名,并且需要在對應數據庫下執行;

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'--指定想要修改的表名
--定義游標取出指定表內的數據類型是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
--打開游標
OPEN cur_ColName
FETCH NEXT FROM cur_ColName INTO @ColName
IF @@FETCH_STATUS<>0
BEGIN
PRINT '沒有對應表或字段,
'PRINT '請確認當前數據庫內有' @TblName '表,
' PRINT '或該表內有VARCHAR、CHAR、NVARCHAR、NCHAR類型的字段!
' GOTO LABCLOSE
END--循環修改
WHILE @@FETCH_STATUS=0
BEGIN
--拼修改字符串
--去掉左邊的不可見字符
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
--去掉右邊的不可見字符 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
--關閉、釋放游標LABCLOSE: CLOSE cur_ColName
DEALLOCATE cur_ColName

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉安县| 华池县| 信丰县| 淄博市| 随州市| 白朗县| 利川市| 江都市| 吉木萨尔县| 新余市| 芦溪县| 恩施市| 驻马店市| 凌源市| 宁蒗| 衡东县| 岑溪市| 东兰县| 万盛区| 宁远县| 镇沅| 和龙市| 汉寿县| 抚远县| 灵武市| 靖西县| 息烽县| 九龙县| 民丰县| 博湖县| 搜索| 秦皇岛市| 克什克腾旗| 沭阳县| 巴彦县| 梧州市| 桐庐县| 秀山| 北海市| 云安县| 阿瓦提县|