我今天发现(*),根据服务器的不同,我的TSQL命令区分大小写,这意味着当命名一个表的列时tableId,以下指令可能不会成功:
tableId
SELECT TableId FROM myTable
取决于列的排序规则。SQL_Latin1_blablabla似乎不区分大小写Latin1_blablabla。
SQL_Latin1_blablabla
Latin1_blablabla
所以我的第一个问题是为什么!
第二个是:更改数据库中所有相关列的所有排序规则的最快技巧(sp?)是什么?
编辑:使事情很清楚:
SELECT tableId FROM myTable
在所有服务器上工作时
仅在具有SQL_Latin_blablabla排序规则的服务器上工作。注意两个字符串之间的区别。我们在这里不是在谈论数据整理,而是在讨论这种整理对我们编写代码的方式的影响!
SQL_Latin_blablabla
(*)在“发现”之后,我可以在此处使用一些附加的特定词来限定我的心理状态,但是所有这些词都是成年的…
继marc_s之后
sys.objects,sys.columns等将列名和对象名存储 在数据库的排序规则中 。因此,二进制排序规则意味着将对象名称视为二进制…