Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2008修改表列的数据类型_Sql Server_Sql Server 2008_Unique Constraint - Fatal编程技术网

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
;