`
sjk2013
  • 浏览: 2186476 次
文章分类
社区版块
存档分类
最新评论

SQL批量重命名中文字段名为对应拼音首字母字段名脚本

 
阅读更多

操作步骤1:生成获取中文字符串对应的拼音首字母字符串函数

操作步骤2:执行重命名中文字段名为拼音字首母字段名脚本

--1、SQL获取中文字符串对应的拼音首字母字符串函数
Create function fun_getPY
(
@str nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)

set @PY=''

while len(@str)>0
begin
set @word=left(@str,1)

--如果非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
then (
select top 1 PY
from
(
select 'A' as PY,N'驁' as word
union all select 'B',N'簿'
union all select 'C',N'錯'
union all select 'D',N'鵽'
union all select 'E',N'樲'
union all select 'F',N'鰒'
union all select 'G',N'腂'
union all select 'H',N'夻'
union all select 'J',N'攈'
union all select 'K',N'穒'
union all select 'L',N'鱳'
union all select 'M',N'旀'
union all select 'N',N'桛'
union all select 'O',N'漚'
union all select 'P',N'曝'
union all select 'Q',N'囕'
union all select 'R',N'鶸'
union all select 'S',N'蜶'
union all select 'T',N'籜'
union all select 'W',N'鶩'
union all select 'X',N'鑂'
union all select 'Y',N'韻'
union all select 'Z',N'咗'
) T
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC
)
else @word
end)
set @str=right(@str,len(@str)-1)
end

return @PY

end

--2、SQL批量重命名中文字段名为对应拼音首字母字段名脚本

--查询当前数据库中的所有中文字段名列表
select b.name as tablename,a.name as columnname from sys.columns a left join sys.objects b on a.object_id=b.object_id where UNICODE(a.name) BETWEEN 19968 AND 19968+20901 order by b.name

--定义游标查询变量
declare @TableName nvarchar(250)
declare @ColumnName nvarchar(250)

--声明读取数据库所有数据表名称游标mycursor1
declare mycursor1 cursor for select b.name as tablename,a.name as columnname from sys.columns a left join sys.objects b on a.object_id=b.object_id where UNICODE(a.name) BETWEEN 19968 AND 19968+20901 order by b.name

--打开游标
open mycursor1
--从游标里取出数据赋值到我们刚才声明的数据表名变量中
fetch next from mycursor1 into @TableName,@ColumnName
--如果游标执行成功
while (@@fetch_status=0)
begin

--定义重命名字段变量
declare @NewColumnName varchar (250)
select @NewColumnName=dbo.fun_getPY(@ColumnName)

declare @renameCommand nvarchar(2000)
set @renameCommand=@TableName+'.'+@ColumnName

--指定重命名字段指令
exec sp_rename @renameCommand,@NewColumnName,'column'

--用游标去取下一条记录
fetch next from mycursor1 into @TableName,@ColumnName
end

--关闭游标
close mycursor1
--撤销游标
deallocate mycursor1

--查询重命名后的当前数据库中的所有中文字段名列表
select b.name as tablename,a.name as columnname from sys.columns a left join sys.objects b on a.object_id=b.object_id where UNICODE(a.name) BETWEEN 19968 AND 19968+20901 order by b.name

分享到:
评论

相关推荐

    21天学会SQL

    SQL Server 登录名 117 6.1.2 创建使用SQL Server身份验证的 SQL Server登录名 120 6.1.3 利用Transact-SQL创建 登录账号 121 6.1.4 创建数据库用户 122 6.1.5 使用Transact-SQL创建 数据库用户 123 6.1.6 登录账号...

    SQL.Server.2008管理员必备指南.part4.rar(4/4)

     丛书名:微软技术丛书  定价:69.00 编辑本段 作者简介  William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其中包括Microsoft Windows ...

    SQL.Server.2008管理员必备指南.part2.rar(2/4)

     丛书名:微软技术丛书  定价:69.00 编辑本段 作者简介  William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其中包括Microsoft Windows ...

    SQL.Server.2008管理员必备指南.part1.rar(1/4)

     丛书名:微软技术丛书  定价:69.00 编辑本段 作者简介  William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其中包括Microsoft Windows ...

    根据sql脚本修改数据库表结构的几种解决方案

    解决方案一:很快我就想到用SQL SERVER 08 R2 自带的功能,生成新库脚本。把老库改个名字,跑新库脚本,然后通过数据库自带功能把老库数据导入到新库数据。测试的时候,数据量不大,速度还比较理想。 但是这对客户...

    动软.Net代码生成器

    Codematic同时提供方便的多类型数据库管理,查询分析器,SQL脚本生成,存储过程生成,数据库文档生成,Web项目发布,代码批量自动输出等多项开发工作中常用到的功能,您可以很方便轻松地进行项目开发。 功能如下...

    SQL必知必会(第3版)--详细书签版

     本书中所有数据库和SQL脚本例子对于这些DBMS都是适用的。 . 本书约定  本书采用等宽字体表示代码,读者输入的文本与应该出现在屏幕上的文本也以等宽字型给出。如:  It will look like this to mimic the way ...

    SQL.Server.2008管理员必备指南.part3.rar(3/4)

     丛书名:微软技术丛书  定价:69.00 编辑本段 作者简介  William R.Stanek微软MVP(最有价值专家),拥有20多年系统管理和高级编程的经验。他是屡获嘉奖的作家,著作多达70部,其中包括Microsoft Windows ...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例233 在程序中执行SQL脚本 实例234 利用SQL语句执行外围命令 第9章 SQL查询相关技术 9.1 通用查询 实例235 SQL语句的应用方法 实例236 SQL语句的模糊查询 实例237 利用查询语句复制表结构 9.2 查询控件 ...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例233 在程序中执行SQL脚本 实例234 利用SQL语句执行外围命令 第9章 SQL查询相关技术 9.1 通用查询 实例235 SQL语句的应用方法 实例236 SQL语句的模糊查询 实例237 利用查询语句复制表结构 9.2 查询控件 ...

    citrix 中文管理操作手册

    为应用程序中的非标准输入字段创建例外项 126 配置 ICA 显示设置 126 为场配置 ICA 显示设置 126 为服务器配置 ICA 显示设置 127 配置 ICA 浏览器设置 127 为服务器配置 ICA 浏览器设置 127 保护服务器场 128 1.8.2....

    ECSHOP设置及开发技巧汇总

    2.13 商品描述上传中文名图片无法显示解决方法 42 2.14 如何将ECSHOP中的相对地址改为绝对地址 43 2.15 goods.php重命名 44 2.16 在Ecshop商品详情页显示当前会员等级价格 45 2.17 修改广告链接地址affiche.php为...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word... [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) REFERENCES tablename(column1,column2,…..column...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例232 在VisualcC++中执行事务 cc实例233 在程序中执行SQL脚本 cc实例234 利用 SQL语句执行外围命令 第9章 SQL查询相关技术 9.1 通用查询 cc实例235 SQL语句的应用方法 cc实例236 SQL语句的模糊...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例233 在程序中执行SQL脚本   cc实例234 利用SQL语句执行外围命令  第9章 SQL查询相关技术   9.1 通用查询   cc实例235 SQL语句的应用方法   cc实例236 SQL语句的模糊查询   cc实例237 利用...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例233 在程序中执行SQL脚本   cc实例234 利用SQL语句执行外围命令  第9章 SQL查询相关技术   9.1 通用查询   cc实例235 SQL语句的应用方法   cc实例236 SQL语句的模糊查询   cc实例237 利用...

    cmd操作命令和linux命令大全收集

    kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内) del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、...

Global site tag (gtag.js) - Google Analytics