我正在try 使用以下方法更改sql server中列的大小:

ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL

其中Addr1的长度最初是40.

失败,引发以下错误:

The object 'Address_e' is dependent on column 'Addr1'.
ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access 
this column.

我试着读了一遍,似乎是因为一些视图引用了这个专栏,而SQL Server实际上试图删除引发错误的专栏.

Address_e是以前的数据库管理员创建的视图.

有没有其他方法可以更改列的大小?

推荐答案

这些视图可能是使用WITH SCHEMABINDING选项创建的,这意味着它们被显式连接起来以防止此类更改.看来阴谋论成功了,阻止你 destruct 那些观点,幸运日,哈?联系您的数据库管理员,让他在确认对数据库的影响后进行更改.

MSDN开始:

SCHEMABINDING

将视图绑定到基础表的架构.什么时候

Sql相关问答推荐

Microsoft Access UNION将长文本字段限制为255个字符

获取每5分钟时间间隔的总和

用于动态查询情况的存储过程常识模式

按每天的最大值分组

从自定义日期和时间开始,每月具有给定状态的公司数量

计算周时出现SQL错误结果

重新组合已排序的日期范围

如何利用单列历史SQLsnowflake获得合并结果

连接三个表的正确方式是什么?在这三个表中,可以显示在一个表上的行将在其他表中显示结果

基于多列比较连接两个表

在SQL中将项分配给容器

用于SQL协助的XQUERY()

根据日期 Select ID 的上一条记录

使用 Oracle SQL Developer 将不同的列值转换为列会导致错误 ORA-01489

SQL for Smarties 类型问题:从表中 Select 记录,并对某些值进行分组

如何使用SQL将患者平均分配给他们所在地区的doctor

Postgres更新增量之间的差异

SQL Server 查找存在于所有不同时期(或序列)中的条目

如何更改 duckdb R 中的数据约束

条件前置值