2

我将 SQL Server 2008 用于 Web 应用程序。

我有一个对几列有约束的表。运行 Web 应用程序时,出现数据库错误:

违反 UNIQUE KEY 约束“UQ__Customer__DDDFDD3762E4AA3C”。无法在对象“dbo.Customer”中插入重复键。重复键值为 (<NULL>)

我有一种直觉是哪一列导致了这个问题。

但是,在 Microsoft SQL Server Management Studio 中有什么方法可以用来查明该列吗?

4

3 回答 3

1
select * from
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
where CONSTRAINT_NAME = '.....'

编辑:

如果约束没有出现在 中information_schema,您可以尝试在 sys* 表中查找它:

select c.name as [column], t.name as [table] 
from sysobjects o 
    inner join syscolumns c on o.id = c.cdefault
    inner join sysobjects t on c.id = t.id
where o.name = 'UQ....'
于 2013-07-29T22:39:05.103 回答
1

Try something like this. It will give you a list of all unique constraints

SELECT TC.CONSTRAINT_CATALOG as [Database],
TC.CONSTRAINT_SCHEMA as [Schema],
TC.TABLE_NAME as [Table],
CCU.COLUMN_NAME as [Column]
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE CCU on TC.CONSTRAINT_NAME = CCU.CONSTRAINT_NAME
WHERE TC.CONSTRAINT_TYPE = 'UNIQUE'
于 2013-07-30T09:38:57.913 回答
1

右键单击表格,然后选择Script table as-> Create to-> New query editor window。这将列出表上的所有约束及其名称。

或者,单击+表格旁边的,然后单击+约束旁边的。您的约束应该列在那里。您可以双击来编辑它,或者像上表中描述的那样编写脚本。

于 2013-07-29T22:35:49.400 回答