记录平时code点滴,这次是通过一张充满异样字符的表,对数据表中的每一列进行清理,比double quotation的issue难多了!
来源:互联网 发布:熊片数据库手机版 编辑:程序博客网 时间:2024/05/16 04:12
需要提供对象:
一张需要被替换字符的表。
通过游标结合动态SQL对某一张特定表的所有列进行更新,主要是对其列值的异常字符处理。
dbo.Characters_need_to_be_replaced
create proc usp_Clean_Table
@table_name sysnameas
begin
set nocount on
@SQLCMD varchar(max)=''
declare replace_cur cursor local static forward_only for
select name from sys.all_columns where is_identity=0 and object_id=object_id(@table_name)
open replace_cur
while(1=1)
begin
fetch next from replace_cur into @col_name
if @@fetch_status!=0 break
declare @col varchar(30)=''
set @col=@col_name--为了不被覆盖只好定义个变量临时存储每次的列名。
select @col_name='replace('+@col_name+',char('+cast(ASCII(chr) as varchar)+'),'''')' from dbo.Characters_need_to_be_replaced --这个类似于递归调用
print @col_name
set @SQLCMD='update '+@table_name+' set '+@col+'='+@col_name
print @SQLCMD
--exec master..sp_executesql N@SQLCMD
end
close replace_cur
deallocate replace_cur
end
虽然显得有些粗糙,但是确实是个强大的功能,可以改写好多了。感悟就是要有迭代跟递归的思想。
0 0
- 记录平时code点滴,这次是通过一张充满异样字符的表,对数据表中的每一列进行清理,比double quotation的issue难多了!
- 数据库_MySQL_利用 存储过程 对 数据表 中的 每一条记录 进行业务处理
- thinkphp 对数据表的列名进行大小写转换
- 记录:对这次转正的一些预测
- 关于mysql数据库对一张数据表查询的同时进行增删改操作
- pandas 对每一列数据进行标准化
- 我是一个码小白啊,编程对我充满了诱惑,我对编程充满了好奇,今天是一个崭新的开始,加油
- 平时的一下记录
- 这次比上次就easy多了
- 使用一个环境的或者半径异样消除器来进行异样消除
- 这次出击基金的决策是对的
- 这次的选择我真的是错了
- sql2000用一个表的列值对另一个表相应的记录值进行更新
- 准备开始记录平时学习的东西了
- 自信 - 又回来了,这次是从心里来的
- 希望这次是真的结束了,及RGB
- Linus 大神又骂人了,这次是搞安全的
- 学习记录-对Qt的QLineEdit进行输入字符限制
- linux命令大全
- Leetcode OJ: Regular Expression Matching
- leetcode Question 123: Wildcard Matching
- 堆结构(二) - 左倾堆的原理与实现
- coding是工程师的基本修养
- 记录平时code点滴,这次是通过一张充满异样字符的表,对数据表中的每一列进行清理,比double quotation的issue难多了!
- 在编程竞赛中提高实战的技能
- http和https的区别
- 权限管理设计(一)
- 权限管理设计(二)
- nyoj 题目1080 年龄排序(下标排序)
- 赢在格局
- java视频播放网站小结
- 跨浏览器截取文本框的内容