--查询 select lower(字段名) from 表名--更新 update 表名 set 字段名=lower(字段名) where ...
按照这个格式将数据库一个一个表的一个一个字段update吧 update tablename set fieldname = lower(fieldname)
1.如果数据库里的表和字段都不多: 按照这个格式将数据库一个一个表的一个一个字段update吧 update tablename set fieldname = lower(fieldname) 2.如果数据库里的表很少,字段很多: 将fieldname设成变量用动态sql自动获取, update tablename set fieldname = lower(@fieldname). 3.如果数据库里的表和字段都很多: 将tablename,fieldname设成变量用动态sql自动获取 update @tablename set fieldname = lower(@fieldname).
同意楼上思路,具体实现如下: --该方法拼出update具体表字段的sql语句.视具体情况可以更改upper为lower,也可以提取该值作为传入参数. create function change_Type(@tableName varchar(200)) returns varchar(8000) as begin declare @sql varchar(8000) set @sql = ' update '+@tableName+' set ' select @sql = @sql+a.name+' = upper('+a.name+'), ' from syscolumns a join sysobjects b on a.id=b.id and b.xtype='U' and b.name=@tableName return left(@sql,len(@sql)-1) end --该方法循环所有用户表,拼接总sql语句.视具体情况可以一次循环20次,防止varchar(8000)溢出. create function nested_table() returns varchar(8000) as begin declare @sql varchar(8000) set @sql = '' select @sql = @sql+' '+dbo.change_type(name) from sysobjects where xtype='U' exec(@sql) end --删除测试方法 drop function change_type drop function nested_table --------------------------------- 没敢执行,只敢拼出最后的语句,部分如下: update EOMS_WORK_ORDER set BEGIN_DATE = upper(BEGIN_DATE), BELONG_JOB_ID = upper(BELONG_JOB_ID), BELONG_STAFF_ID = upper(BELONG_STAFF_ID), CREATE_DATE = upper(CREATE_DATE), DIS_STATE = upper(DIS_STATE) update PM_ROLE_TYPE set COMMENTS = upper(COMMENTS), ROLE_TYPE = upper(ROLE_TYPE), ROLE_TYPE_NAME = upper(ROLE_TYPE_NAME) update--第三个update了,下同
--查询
select lower(字段名) from 表名--更新
update 表名 set 字段名=lower(字段名) where ...
update tablename set fieldname = lower(fieldname)
按照这个格式将数据库一个一个表的一个一个字段update吧
update tablename set fieldname = lower(fieldname)
2.如果数据库里的表很少,字段很多:
将fieldname设成变量用动态sql自动获取,
update tablename set fieldname = lower(@fieldname).
3.如果数据库里的表和字段都很多:
将tablename,fieldname设成变量用动态sql自动获取
update @tablename set fieldname = lower(@fieldname).
--该方法拼出update具体表字段的sql语句.视具体情况可以更改upper为lower,也可以提取该值作为传入参数.
create function change_Type(@tableName varchar(200))
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql = ' update '+@tableName+' set '
select @sql = @sql+a.name+' = upper('+a.name+'), '
from syscolumns a
join sysobjects b on a.id=b.id
and b.xtype='U' and b.name=@tableName
return left(@sql,len(@sql)-1)
end
--该方法循环所有用户表,拼接总sql语句.视具体情况可以一次循环20次,防止varchar(8000)溢出.
create function nested_table()
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql = ''
select @sql = @sql+' '+dbo.change_type(name)
from sysobjects
where xtype='U'
exec(@sql)
end
--删除测试方法
drop function change_type
drop function nested_table
---------------------------------
没敢执行,只敢拼出最后的语句,部分如下:
update EOMS_WORK_ORDER set BEGIN_DATE = upper(BEGIN_DATE), BELONG_JOB_ID = upper(BELONG_JOB_ID), BELONG_STAFF_ID = upper(BELONG_STAFF_ID), CREATE_DATE = upper(CREATE_DATE), DIS_STATE = upper(DIS_STATE) update PM_ROLE_TYPE set COMMENTS = upper(COMMENTS), ROLE_TYPE = upper(ROLE_TYPE), ROLE_TYPE_NAME = upper(ROLE_TYPE_NAME) update--第三个update了,下同