我安装了安装了Microsoft SQL Server 2016(SP1)的Windows 8计算机。
在我的数据库中:
alter table myAddress
alter column myTown nvarchar(100) NOT NULL
当我在此计算机上运行上述查询时,要更改列大小(现有列大小 50 ),查询工作正常,没有任何错误。
现在,我安装了另一台安装了Microsoft SQL Server 2016(SP1)的Windows 10计算机。
当我在这个Windows 10机器上运行相同的上述查询时,我得到以下错误:
Msg 5074, Level 16, State 1, Line 5
The object 'defEmptyString' is dependent on column 'myTown'.
Msg 5074, Level 16, State 1, Line 5
The index 'IX_myAddress_Name_Town' is dependent on column 'myTown'.
Msg 5074, Level 16, State 1, Line 5
The index 'IX_myAddress_Town' is dependent on column 'myTown'.
Msg 4922, Level 16, State 9, Line 5
ALTER TABLE ALTER COLUMN myTown failed because one or more objects access this column.
我最初安装了SQL server 2017数据库实例并遇到了这个问题,所以我安装了2016数据库实例,但是我仍然遇到同样的错误。有什么想法吗?
我无法更改查询,因为它是一个旧脚本,是创建数据库的大脚本的一部分,团队中的每个人都使用它。我的新Windows 10机器的配置必须有不同的东西。 任何想法都会对你们所有专家都有帮助。
感谢。
编辑:
我想我已经设法重现了它。列的排序规则使用SQL_Latin1_General_CP1_CI_AS
设置http://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=1e04f2572305efd5337cb47bc6af419b
答案 0 :(得分:0)
感谢大家的回复。同时,我一直在努力将服务器的排序规则从sql_latin1_General_CP1_CI_AS更改为Latin1_General_CI_AS(与数据库匹配排序)。从管理工作室重新启动了sql server,现在它可以运行了。
我想我已经设法重现了它。列的排序规则使用SQL_Latin1_General_CP1_CI_AS
设置转载: http://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=1e04f2572305efd5337cb47bc6af419b
解决方案: https://www.mssqltips.com/sqlservertip/3519/changing-sql-server-collation-after-installation/