【SQL的学习笔记】SQL SERVER查询出数据库中特定排序规则的表和字段

因为数据库服务器使用的是Linux系统,当时创建数据库的时候没有注意,使得数据库内某些表的部分字段的排序规则使用了非中文的排序方式。
导致那些字段的中文内容查询出来乱码,如果不更改其排序方式的话,那么数据库涉及到的存储过程都需要在代码里做专门的处理,而挨个查看存储过程查找涉及情况,将是一个非常漫长的过程。
所以,将这些字段的排序规则更正为中文排序规则成了最终的解决方案。
为了进行更改,需要先查询出错误排序规则的字段分别有哪些,于是编写了如下代码:

--查询本数据库中,所有表的所有字段,筛选出其中排序规则使用了非中文排序方式的字段
SELECT
	 [表名] = MyTables.[name]
	,[字段名] = C.[name]
	,[数据类型] = ST.[name]
	,[排序规则] = C.[collation_name]
FROM sys.columns C 
JOIN sys.types ST ON C.[user_type_id] = ST.[user_type_id]
JOIN sys.tables MyTables ON C.[object_id] = OBJECT_ID(MyTables.[name])
WHERE C.[collation_name] NOT LIKE '%Chinese_PRC_CI_AS%'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值