【问题标题】:SQLite to SQL Server 2008, CollationsSQLite 到 SQL Server 2008,排序规则
【发布时间】:2014-04-22 04:50:28
【问题描述】:

尝试将数据库结构从 SQLite 导入 SQL Server 2008 R2 Express。如何在我的 SQL Server CREATE TABLE 脚本中定义以下 SQLite 语法?

vendor_no VARCHAR(255) COLLATE NOCASE

我检查了MSDN page on collations,但它有太多条目,其中许多看起来非常相似。如果重要的话,数据库是在美式英语环境中。

【问题讨论】:

    标签: sql-server sqlite tsql collation


    【解决方案1】:

    SQLlite 只有一个内置排序规则(二进制),'nocase' 只是使二进制排序规则不区分大小写。 SQL Server 有许多不同字母的排序规则,其中大部分在两个版本中(CI - 不区分大小写和 CS - 区分大小写)。 在 SQL Server 中混合排序规则不是一个好主意,因为这很容易由于许多操作(例如连接、联合等)中的隐式转换而出错。

    您可以做的是检查数据库中的排序规则以确保不区分大小写:

    SELECT name, collation_name FROM sys.databases
    

    这个查询很可能返回:SQL_Latin1_General_CP1_CI_AS(美国英语不区分大小写),但您只需要确保它显示类似 ...CI...

    【讨论】:

    • 谢谢伙计。该查询为我的数据库返回SQL_Latin1_General_CP1_CI_AS。所以可能我的状态很好。
    • 是的,看起来不错;你不需要在列级别指定排序规则。
    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2010-10-06
    • 2010-11-10
    • 2012-06-10
    相关资源
    最近更新 更多