一尘不染

SQL Server:列排序规则对T-SQL指令的影响

sql

我今天发现(*),根据服务器的不同,我的TSQL命令区分大小写,这意味着当命名一个表的列时tableId,以下指令可能不会成功:

SELECT TableId FROM myTable

取决于列的排序规则。SQL_Latin1_blablabla似乎不区分大小写Latin1_blablabla

所以我的第一个问题是为什么!

第二个是:更改数据库中所有相关列的所有排序规则的最快技巧(sp?)是什么?

编辑:使事情很清楚:

SELECT tableId FROM myTable

在所有服务器上工作时

SELECT TableId FROM myTable

仅在具有SQL_Latin_blablabla排序规则的服务器上工作。注意两个字符串之间的区别。我们在这里不是在谈论数据整理,而是在讨论这种整理对我们编写代码的方式的影响!

(*)在“发现”之后,我可以在此处使用一些附加的特定词来限定我的心理状态,但是所有这些词都是成年的…


阅读 193

收藏
2021-03-08

共1个答案

一尘不染

继marc_s之后

sys.objects,sys.columns等将列名和对象名存储 在数据库的排序规则中 。因此,二进制排序规则意味着将对象名称视为二进制…

2021-03-08