以下的文章主要向大家讲述的是如何正确的去除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好导航站长资讯发布,如需转载请注明出处。
正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...
有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...
出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...
假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...
故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...
一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...