sql - 更改SQL Server 2012系统排序规则

标签 sql sql-server database sql-server-2012 collation

我读过关于更改系统排序规则的官方文章。
我对这篇文章有一些问题。
1.是否必须删除所有用户数据库并基本上重新创建它们?
2.如果我只分离数据库,并在使用上述链接中的手动更改系统排序规则后,通过alter命令附加用户数据库并更改数据库排序规则,会怎么样?
我能通过某种方式找出系统数据库中所有用户创建的对象,如作业、存储过程等吗?
当我通过alter命令更改用户数据库排序规则时,nvarchar列上的索引会有问题吗?

最佳答案

是的,您需要删除它们并重新创建它们,否则可能会损坏数据库中的数据。一种方法是更改数据库的名称,并在更改之前创建另一个同名的数据库。在完成所有排序规则和所有设置之后,可以开始重新创建数据库。您可以右键单击并编写所需的所有存储过程和视图的脚本,还可以使用import-export实用程序加载包含所需所有数据的新数据库。另一种方法是使用带有随机名称的create db创建一个登台数据库,然后设置所有的排序规则,然后提取所有数据以保持原始数据库的正常运行,然后备份新的数据库,当您准备好恢复在旧数据库上创建的新数据库时,这将使所有内容对的。确保创建旧数据库的镜像。这样你就不会在数据库上浪费时间了。
在不进入系统视图和系统存储过程的情况下可以看到的所有存储过程和视图都是在某个时刻由用户创建的。作业也是一样;作业只由用户创建—没有任何系统作业。

关于sql - 更改SQL Server 2012系统排序规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37836367/

相关文章:

sql - 帮助使用几个外键进行 SQL 查询

sql-server - 在 SQL Server 中对超过 8000 字节进行哈希处理

python - Django 运行缓慢的原因

ruby-on-rails - 如何在 Rails 中联合多角色、多组织表

php - 使用 MySQL 执行复杂的多表搜索查询

sql - Listagg Overflow函数实现(Oracle SQL)

mysql - 如何将新表中的行分组在一起?

sql - 如何优化此SQL删除语句

sql-server - Azure SQL 托管实例 - 不支持创建凭据

sql - 获取聚合数据的 UNION ALL 的替代方案