【发布时间】:2021-03-01 23:50:42
【问题描述】:
我的处境很棘手。最初我的数据库目录不区分大小写。我编写愉快的查询而不介意变量名的大写。一切都很好。在我的数据库迁移到不同的主机后,服务器实例级别的排序规则区分大小写。现在我的变量名需要拼写检查和大小写检查。
没关系,因为我很少使用变量。
最近出现了一种情况,在我的主查询中引用它们之前,我需要使用临时表来缓冲来自多个视图的一些结果。本质上:
SELECT * INTO #myview1 FROM vw_myview1
SELECT * INTO #myview2 FROM vw_myview2
和
SELECT *
FROM #myview1 v1
JOIN #myview2 v2 on v1.id = v2.id
如果我的数据库实例具有不区分大小写的排序规则,一切都会好起来的。但不是。在我的主要查询中,我会将列名大写全部搞砸,WorkID,workId,workid,你来命名它。我有 50 多个这样的查询需要临时表解决方法。必须为引用新临时表中的列的每个实例修复大写字母是疯狂且容易出错的。无论如何我可以翻转开关并说忽略此临时表的列名排序规则吗?
【问题讨论】:
-
TL;博士不。事实上,即使您在不区分大小写的排序规则中编写,您仍然应该确保对象的大小写正确。如果您现在使用区分大小写的排序规则,则需要更改为不区分大小写的排序规则(在数据库级别)或修复查询。没有“解决方法”,因为这样排序规则就不会按设计工作。
标签: sql-server collation