ALTER DATABASE BENESSE COLLATE Japanese_CI_AS在查询分析器中执行成功,可一关闭查询分析器数据库的排序规则又变回原来的了,怎么解决?

解决方案 »

  1.   

    在对数据库应用不同排序规则之前,请确保已满足下列条件: 1.您是当前数据库的唯一用户。2.没有依赖数据库排序规则的架构绑定对象。 
     如果数据库中存在下列依赖于数据库排序规则的对象,则 ALTER DATABASE database_name COLLATE 语句将失败。SQL Server 将针对每一个阻塞 ALTER 操作的对象返回一个错误消息:
      .通过 SCHEMABINDING 创建的用户定义函数和视图。
      .计算列。
      .CHECK 约束。
      .表值函数返回包含字符列的表,这些列继承了默认的数据库排序规则。3.改变数据库的排序规则不会在任何数据对象的系统名称中产生重复名称。 
     如果改变排序规则后出现重复的名称,则下列命名空间可能导致改变数据库排序规则的操作失败:
      .对象名,如过程、表、触发器或视图。
      .架构名称
      .主体,例如组、角色或用户。
      .标量类型名,如系统和用户定义类型。
      .全文目录名称。
      对象内的列名或参数名。
      表范围内的索引名。由新的排序规则产生的重复名称将导致更改操作失败,SQL Server 将返回错误消息,指出重复名称所在的命名空间。
      

  2.   

    在对数据库应用不同的或新的排序规则时,应确保符合以下条件: 您是当前数据库的唯一用户。
    没有依赖数据库排序规则的架构绑定对象。 
    如果数据库中存在以下依赖数据库排序规则的对象,则 ALTER DATABASE database COLLATE 语句将失败。SQL Server 将针对每一个阻塞 ALTER 操作的对象返回一个错误信息:通过 SCHEMABINDING 创建的用户定义函数和视图。
    计算列。
    CHECK 约束。
    表值函数返回包含字符列的表,这些列继承了默认的数据库排序规则。 
    改变数据库的排序规则不会在任何数据对象的系统名称中产生重复名称。 
    如果改变排序规则后出现重复的名称,则下列命名空间可能导致改变数据库排序规则的操作失败:对象名(如过程、表、触发器或视图)。
    架构名(如组、角色或用户)。
    标量类型名(如系统和用户定义类型)。
    全文目录名称。
    对象内的列名或参数名。
    表范围内的索引名。 
    由新的排序规则产生的重复名称将导致改变操作失败,SQL Server 将返回错误信息,指出重复名称所在的命名空间。
      

  3.   

    alter database 数据库 collate 排序规格
    其中,某些排序规则指定CI 不区分大小写,CS 指定区分大小写。如:alter database 数据库 COLLATE Chinese_PRC_CI_AS 
        不区分大小写,而
        alter database 数据库 COLLATE Chinese_PRC_CS_AS 
        使之区分大小写。使用如下命令,可以获得更多的规则:
    SELECT *
    FROM ::fn_helpcollations()
      

  4.   

    你的表里的某些字段有自己COLLATE吧。MAYBE, I GUESS