Sql server SQL Server 2008修改表列的数据类型
我需要修改表列的数据类型,这被认为是通过以下语句完成的:Sql server SQL Server 2008修改表列的数据类型,sql-server,sql-server-2008,unique-constraint,Sql Server,Sql Server 2008,Unique Constraint,我需要修改表列的数据类型,这被认为是通过以下语句完成的: ALTER TABLE QUANTITIES_NEW ALTER COLUMN VERSION_NEW VARCHAR(12); 不幸的是,我犯了一个错误(德语) 可翻译为: The object-object 'UQ_QUANTITIES_NAME_VERSION' depends on the column object 'VERSION_NEW'. Failure at ALTER TABLE ALTER COLUMN VERSI
ALTER TABLE QUANTITIES_NEW ALTER COLUMN VERSION_NEW VARCHAR(12);
不幸的是,我犯了一个错误(德语)
可翻译为:
The object-object 'UQ_QUANTITIES_NAME_VERSION' depends on the column object 'VERSION_NEW'.
Failure at ALTER TABLE ALTER COLUMN VERSION_NEW, because this column is accessed by one or more columns.
我假设唯一约束没有被禁用。在我执行声明之前
ALTER TABLE QUANTITIES NOCHECK CONSTRAINT ALL
;
也是。但仍然是相同的错误。删除关联的约束。如果分解表,则在“约束”部分中会找到链接到字段的约束。放下它。在您可以更改字段类型后是否真的没有办法禁用约束并随后启用它。因为如果我删除它,我必须再添加一次。IHMO,不行。因为约束中存储了一些字段信息,比如默认值。因为DDL语句是由程序自动生成的,所以我需要知道有关UniqueConstraint的详细信息(例如列名),因为我想获得程序生成的相同约束。是否存在检索该信息的查询?提前感谢。请尝试以下操作:从sys.default\u constraints dc left join dbo.sysobjects so on dc.parent\u object\u id=so.id和so.xtype='u'和so.name='your\u Table'按so.name排序感谢您的帮助。最后我得到的解决方案是:从信息中选择表名、列名,其中ccu.CONSTRAINT\u COLUMN\u USAGE ccu='CONSTRAINT\u NAME';
ALTER TABLE QUANTITIES NOCHECK CONSTRAINT ALL
;