sqlserver重命名字段,sql数据库重命名代码

  sqlserver重命名字段,sql数据库重命名代码

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

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

  - 1、SQL获取中文字符串对应的拼音首字母字符串函数

  创建函数乐趣_getPY

  (

  @str nvarchar(4000)

  )

  返回nvarchar(4000)

  如同

  开始

  声明@word nchar(1),@PY nvarchar(4000)

  set @PY=

  而len(@str) 0

  开始

  set @word=left(@str,1)

  -如果非汉字字符,返回原字符

  set @PY=@PY(当unicode(@word)在19968和19968 20901之间时的大小写

  然后(

  选择顶部一个

  从

  (

  选择A作为PY,N驁作为单词

  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 鶸

  联合所有选择,N蜶

  union all select T ,N 籜

  union all select W ,N 鶩

  union all select X ,N 鑂

  union all select Y ,N 韻

  联合所有选择z ,N 咗

  )T

  其中word=@ word collate中文_ PRC _ CS _ AS _ KS _ WS

  按PY ASC排序

  )

  else @word

  结束)

  set @str=right(@str,len(@str)-1)

  目标

  返回@PY

  目标

  -查询当前数据库中的所有中文字段名列表

  从sys中选择b.name作为tablename,a . name作为列名。列a左连接系统。a . object _ id=b . object _ id上的对象b其中EN 19968之间的UNICODE(a . name)和19968 20901按b.name排序

  -定义游标查询变量

  declare @TableName nvarchar(250)

  declare @ColumnName nvarchar(250)

  -声明读取数据库所有数据表名称游标我的光标一

  为挑选声明我的光标1游标b .姓名为tablename,a.name为sys中的列名。列a左连接系统。a . object _ id=b . object _ id上的对象b其中EN 19968之间的UNICODE(a . name)和19968 20901按b.name排序

  -打开游标

  打开我的光标一

  -从游标里取出数据赋值到我们刚才声明的数据表名变量中

  将然后从我的光标1提取到@TableName,@ColumnName

  -如果游标执行成功

  while (@@fetch_status=0)

  开始

  -定义重命名字段变量

  声明@ new列名varchar(250)

  select @ new column name=dbo。fun _ getPY(@列名)

  声明@renameCommand nvarchar(2000年)

  set @renameCommand=@TableName . @ColumnName

  -指定重命名字段指令

  exec sp_rename @renameCommand,@NewColumnName, column

  -用游标去取下一条记录

  将然后从我的光标1提取到@TableName,@ColumnName

  目标

  -关闭游标

  关闭我的光标一

  -撤销游标

  取消分配我的光标一

  -查询重命名后的当前数据库中的所有中文字段名列表

  从sys中选择b.name作为tablename,a . name作为列名。列a左连接系统。a . object _ id=b . object _ id上的对象b其中EN 19968之间的UNICODE(a . name)和19968 20901按b.name排序

sqlserver重命名字段,sql数据库重命名代码