SQL SERVER中格式化表中的数据
类别: 数据库教程
在数据库开发中,由于用户录入信息的随意性,可能产生表内字符串类型的数据两端存有空格,或大小写不一致等现象,给以后数据应用过程中造成不必要的麻烦。这里简单使用了一个存储过程来解决这些问题。
/* 整理系统数据*/
CREATE PROCEDURE pro_ClearupData
as
--第一部分 整理字符串类型的数据 去除两端的空格
declare @tableName varchar(50) --表名
declare @columnName varchar(50) --列名
declare cur_find cursor for select so.name,sc.name
from syscolumns sc, sysobjects so, systypes st
where so.name <> \'dtproperties\'
and st.xtype=sc.xtype
and st.name=\'varchar\'
and sc.id=so.id
and so.xtype=\'u\'
--查找包含varchar类型字段的所有用户表
open cur_find
fetch next from cur_find into @tableName,@columnName
while @@fetch_status=0
begin
--去掉字段的两端空格
exec(\'update \'+@tableName+\' set \'+@columnName+\'=ltrim(rtrim(\'+@columnName+\'))\')
fetch next from cur_find into @tableName,@columnName
end
close cur_find
deallocate cur_find
GO
/* 整理系统数据*/
CREATE PROCEDURE pro_ClearupData
as
--第一部分 整理字符串类型的数据 去除两端的空格
declare @tableName varchar(50) --表名
declare @columnName varchar(50) --列名
declare cur_find cursor for select so.name,sc.name
from syscolumns sc, sysobjects so, systypes st
where so.name <> \'dtproperties\'
and st.xtype=sc.xtype
and st.name=\'varchar\'
and sc.id=so.id
and so.xtype=\'u\'
--查找包含varchar类型字段的所有用户表
open cur_find
fetch next from cur_find into @tableName,@columnName
while @@fetch_status=0
begin
--去掉字段的两端空格
exec(\'update \'+@tableName+\' set \'+@columnName+\'=ltrim(rtrim(\'+@columnName+\'))\')
fetch next from cur_find into @tableName,@columnName
end
close cur_find
deallocate cur_find
GO
- 上一篇: 取汉字拼音首字母的存储过程
- 下一篇: SQL SERVER的命名规则
-= 资 源 教 程 =-
文 章 搜 索