当前位置: 首页 > news >正文

SQL Server 数据库排序规则报错“由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN fid 失败”解决办法

1、问题描述

(1)业务操作时报错:

(2)调整相关表列的排序规则为Chinese_PRC_CS_AS,无法更改

消息 5074,级别 16,状态 1,第 1 行
对象'CPK_BAS_EQUIPMETKI' 依赖于 列'fid'。
消息 4922,级别 16,状态 9,第 1 行
由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN fid 失败。

2、解决步骤

(1)先删除主键

alter  TABLE [dbo].[CT_BAS_EQUIPMENT] drop   CONSTRAINT [CPK_BAS_EQUIPMETKI] ;

(2)再改排序:

alter table  [dbo].[CT_BAS_EQUIPMENT] alter column  fid varchar(44)  COLLATE Chinese_PRC_CS_AS  not null;

(3)再创建主键

(4)检查列排序是否改成功

3、注意

(1)对主键列排序调整,要在后后面加上not null,否则列会变为null;
(2)把Chinese_PRC_CI_AS改为Chinese_PRC_CS_AS获取语句:
select ' ALTER TABLE '+sys.tables.name+' ALTER COLUMN '+sys.columns.name+' ' + sys.types.name + '('+ cast(sys.columns.max_length as varchar)+')' +' COLLATE'+' Chinese_PRC_CS_AS' +';' ,sys.tables.name as tablename,sys.columns.name as 字段名, sys.types.name as 字段类型, sys.columns.max_length as 长度, sys.columns.collation_name,sys.columns.is_nullable as 是否可空 from sys.columns, sys.tables, sys.types where sys.columns.object_id = sys.tables.object_id and sys.columns.system_type_id=sys.types.system_type_id  and sys.columns.collation_name='Chinese_PRC_CI_AS'  and sys.tables.name in('表名')

相关文章:

  • weui.css做网站/宁波优化推广找哪家
  • 设计师的个人网页设计/六年级上册数学优化设计答案
  • ubuntu做php网站/适合40岁女人的培训班
  • 买的服务器做两个网站/手机卡顿优化软件
  • wordpress封面图七牛/上海关键词排名推广
  • 网站设计风格/网站关键词优化价格
  • C生万物 | 第一篇 —— 初识C语言【适合入门,建议收藏】
  • 嵌入式系统开发笔记102:DEV C++的使用
  • 打开算法之门,解释什么是算法
  • 基于JAVA爱馨敬老院网站计算机毕业设计源码+系统+lw文档+部署
  • MyBatisPlus3.x
  • C语言|图解指针变量
  • Linux系统编程·进程概念引入
  • 苹果认证Apple Store Connenct api的使用
  • HashMap和Hashtable(全网最详细)
  • Linux10 -- 相关习题
  • 公司招人:34岁以上两年一跳的不要,开出工资以为看错了
  • JVM之对象的内存模型、创建过程、对象引用、生命周期