当前位置:首页 > 系统运维 > 正文内容

去除SQL Server不可见字符并不难

a8116255316年前 (2010-07-08)系统运维13

以下的文章主要向大家讲述的是如何正确的去除SQL Server不可见字符,我们以例举实例的方式对其进行详细说明,假如你对其实际操作有兴趣了解的话,以下的文章你一定不要错过,以下就是文章的主要内容描述。

以下的实例为去除指定表中数据类型是VARCHAR,CHAR,NVARCHAR的字段值中的SQL Server不可见字符。 注释:此处只去掉前后的SQL Server不可见字符,不包括中间的字符,而且没有区分中文。

在使用前需要指定对应要修改的表名,并且需要在对应数据库下执行;

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 ON ***  

打开游标

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 

拼修改字符串 --去掉左边的SQL Server不可见字符

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 

去掉右边的SQL Server不可见字符 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 

以上的相关内容就是对SQL Server不可见字符的去除的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21611.html

分享给朋友:

“去除SQL Server不可见字符并不难” 的相关文章

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

 故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...

windows 7如何创建拨号连接

windows 7如何创建拨号连接

一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...