Sta*_*len 124 sql sql-server
我正在尝试使用以下命令更改sql server中列的大小:
ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
我试图阅读它,似乎因为一些视图引用此列,似乎SQL Server实际上试图删除引发错误的列.
Address_e 是由以前的数据库管理员创建的视图.
有没有其他方法可以改变列的大小?
小智 256
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
Run Code Online (Sandbox Code Playgroud)
Rem*_*anu 58
视图可能是使用WITH SCHEMABINDING选项创建的,这意味着它们已明确连接以防止此类更改.看起来架构绑定工作并阻止你打破这些观点,幸运的一天,嘿?在断言对数据库的影响之后,请联系您的数据库管理员并要求他进行更改.
来自MSDN:
SCHEMABINDING
将视图绑定到基础表的模式.指定SCHEMABINDING时,不能以影响视图定义的方式修改基表.必须首先修改或删除视图定义本身,以删除要修改的表的依赖关系.
小智 6
如果有人想在SQL Server 2008中"增加复制表的列宽",则无需更改" replicate_ddl=1" 的属性.只需按照以下步骤 -
ALTER TABLE [Table_Name] ALTER COLUMN [Column_Name] varchar(22)varchar(x)增加到varchar(22)您可以在订户上看到的相同更改(已复制的事务).因此无需重新初始化复制希望这能帮助所有寻找它的人.
看到这个链接
使用T-SQL命令调整或修改具有默认约束的MS SQL Server表列
这样一个SQL Server问题的解决方案将是
删除或禁用表列上的DEFAULT约束.
修改表列数据类型和/或数据大小.
在sql表列上重新创建或启用默认约束.
再见
| 归档时间: |
|
| 查看次数: |
446298 次 |
| 最近记录: |