临时表的默认排序规则

Posted

技术标签:

【中文标题】临时表的默认排序规则【英文标题】:Default collation of temporary tables 【发布时间】:2012-03-27 18:50:42 【问题描述】:

如何检查临时表的排序规则是什么?

我想这样做是因为我想检查如果我有具有特定排序规则的数据库会发生什么,与 SQL Server 实例不同并创建一个临时表。

假设我们有这种情况:

SQL Server 2008 - Latin1_General_CS_AS

测试数据库 - Estonian_CS_AS

然后创建表#Test 而不指定排序规则。哪个是表格的排序规则?

我认为Estonian_CS_AS,但在我正在做的测试中说Latin1_General_CS_AS。这就是为什么我需要找到一个 SQL 语句来检查这个。

注意:根据我的阅读,我认为临时对象的排序规则是由 tempdb 排序规则定义的。但如果这是真的,它的种类是什么?

【问题讨论】:

【参考方案1】:

tempdb 在服务器启动并从model 数据库中获取排序规则时重新创建。

您在未指定排序规则的情况下创建的临时表将具有tempdb 的排序规则。创建临时表时,您可以使用database_default 作为排序规则,以获得与当前数据库相同的排序规则。

【讨论】:

以上是关于临时表的默认排序规则的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 排序规则的问题

查询以显示所有表及其排序规则

[MySQL] INFORMATION_SCHEMA 数据库包含所有表的字段

与临时表中的列进行比较时发生 SQL 排序规则冲突

sql 更改数据库表的排序规则

SQL Server转换数据库的排序规则