来自 数据库 2020-03-17 12:24 的文章
当前位置: 网上澳门金莎娱乐 > 数据库 > 正文

记录平时code点滴,这次是通过一张充满异样字符的表,对数据表中的每一列进行清理,比double quotation的issue难多了!

复制代码 代码如下:IF Exists(Select 1 From sysobjects Where Name='sp_search' And xType='P') Drop Procedure sp_search go /* 模糊查询的通用存储过程 create by sxm,date 2009-7-14 参数: @table_name 表名 @condition 条件 */ create proc sp_search(@table_name varchar(200),@condition varchar(100)) with encryption as begin declare @strsql varchar(8000) declare @col_name varchar(100) declare @str_cols varchar(8000) set @str_cols='' --查询表中的列名 declare cur_1 cursor for select column_name from information_schema.columns where table_name=@table_name open cur_1 fetch cur_1 into @col_name while @@fetch_status=0 begin --组合查询条件 set @str_cols=@str_cols + @col_name+' like ''%' + @condition+ '%''' + ' or ' fetch cur_1 into @col_name end --while close cur_1 deallocate cur_1 set @str_cols=left(@str_cols,len(@str_cols)-3) --print @str_cols set @strsql='select * from '+@table_name+' where '+ @str_cols exec(@strsql) end

需要提供对象:

一张需要被替换字符的表。

通过游标结合动态SQL对某一张特定表的所有列进行更新,主要是对其列值的异常字符处理。

dbo.Characters_need_to_be_replaced 

图片 1

create proc usp_Clean_Table 

@table_name sysname
as
begin 

set nocount on 

declare @col_name varchar(max)='',
@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 

本文由网上澳门金莎娱乐发布于数据库,转载请注明出处:记录平时code点滴,这次是通过一张充满异样字符的表,对数据表中的每一列进行清理,比double quotation的issue难多了!

关键词: